Problème inconnu sur un return

Mon JS essayerais t'il de me rendre fou?

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Aujourd'hui ma fonction JS a décider de faire une réaction bizarre que je ne comprend pas du tout…

Je fait une requète Ajax dans laquelle je modifie la valeur d'une variable result de manière a voir si tout a bien fonctionner.

A la fin de ma requète Ajax, je fait un return result; de manière a conditionner le retrait du formulaire ou non.

Eh ben aujourd'hui mon return ne fonctionne que si je fait un alert(); avant le return....

Si j'ai mon alert :

  • Ma variable passe a true
  • Mon alert s'affiche
  • Mon return vaut true

Si je n'ai pas mon alert :

  • Ma variable passe a true
  • Mon alert n'existe pas donc ne s'affiche pas
  • Mon return vaut false
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<script>
function addCard(baseLien){
    //DATA
    var result = false;
    var title = document.getElementById("title").value;

    $.ajax({
        type: 'POST',
        url: lien,
        data: data,

        success: function(data, status) {
            if(!data.updated){
                if(data.title){
                    //Update display - Add the new li

                    [...]

                    //Changement de ma variable
                    this.result  = true;
                }
            }
            else{
                //Init the form
                document.getElementById('update').value = "False";

                [...]

                //Changement de ma variable
                this.result  = true;
            }
        },

        error: function(resultat, status, erreur) {
            //Init the form
            document.getElementById('update').value = "False";
        }
    });
    //Le alert qui fait la paix dans le monde...
    alert('paranoïa désactivé');
    return result;
}
</script>
+0 -0

PS: Ce message était de toute évidence un faux espoir, async: false, est à éviter.

Bon j'ai trouvé mon bonheur avec async: false, dans mes paramètres Ajax. Mon Ajax rouler en parallèle et l'envoi de mon return se faisait alors plus vite que l'Ajax.

Merci quand même.

+0 -0

Oh genre appeler une fonction dans mon success Ajax afin de relancer la suite?

Je pourrais en effet revoir l'architecture pour faire cela..

+0 -0
  • d'afficher un toast de succès dans ton success
  • d'afficher un toast d'erreur dans ton error

DigitalSuricate

Qu'appelle tu un toast exactement ? Je ne connais pas du tout ce vocabulaire.

Pour ce qui est de l'animation je n'en ai pas, mon action ce passe en quasi-instantané et l'utilisateur ne la verrais pas passer.

+0 -0

J'aime assez ce que vous me montrer ici, cependant je ne pense pas que cela soit profitable a notre système.

Le site ne devrais être utilisé qu'en interne et bien souvent sur des ordinateur de l'université. Le temps de latence ne devrais donc pas varié a ce que je vois sur mon serveur de test.

De plus l'application est très rapide d'utilisation, ce qui ferait soit un déroulement de toast important soit des messages trop rapide.

Je garde tout de même vos liens sous le coude pour d'autre partie du site! Ça fait un bon complément au message de Django.

Merci pour l'information de l'asynchronisme! Je met le sujet en résolu puisque c'était vraiment le point central de cette discution.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte