Attendre la fin d'une instruction avant de passer à la suivante [JS] - HTML/CSS - Programmation
Marsh Posté le 05-07-2012 à 17:55:32
A ma connaissance c'est toujours le cas, après il faudrait que tu définisses "instruction"
Marsh Posté le 05-07-2012 à 18:13:25
WiiDS a écrit : A ma connaissance c'est toujours le cas |
Oui, le JS est et reste single-threadé, il ne peut pas y avoir deux contextes d'exécution implicitement mêlés.
Marsh Posté le 05-07-2012 à 18:26:09
Au départ j'avais les deux instructions suivantes dans cet ordre :
document.location.href = "/blabla"; |
Sous FF3.5 j'avais la redirection sur la nouvelle page, puis ma boite de dialogue.
Maintenant je vois un bref instant ma boite de dialogue (1/2 seconde) avant que celle ci ne disparaisse pour arriver la page de redirection. Comme si la deuxième instruction avait commencé avant la fin de la première.
Marsh Posté le 05-07-2012 à 19:27:33
Cver1 a écrit : Au départ j'avais les deux instructions suivantes dans cet ordre :
|
Je pense que c'est pas une bonne idée de procéder ainsi. Quand tu fais document.location.href = "/blabla", tu demandes au navigateur de rediriger vers cette adresse et donc de quitter la page courante. Dès lors, ça ne m'étonne pas qu'il soit possible que le reste de ton script ne soit pas exécuté. Le fait que les nouvelles versions de FF soient plus rapides doivent y jouer, c'est sur.
Marsh Posté le 05-07-2012 à 19:51:33
Cver1 a écrit : Au départ j'avais les deux instructions suivantes dans cet ordre :
Sous FF3.5 j'avais la redirection sur la nouvelle page, puis ma boite de dialogue. Maintenant je vois un bref instant ma boite de dialogue (1/2 seconde) avant que celle ci ne disparaisse pour arriver la page de redirection. Comme si la deuxième instruction avait commencé avant la fin de la première. |
À ma connaissance, c'était un hack et un coup de bol que ça fonctionne, location.href synchrone.
Il est encore plus surprenant qu'il conservait le contexte d'exécution courant à travers un reload.
Marsh Posté le 07-07-2012 à 16:10:23
Merci pour vos réponses.
Marsh Posté le 05-07-2012 à 16:59:38
Coucou.
Je voudrais savoir quels moyens existent pour imposer aux navigateurs l'execution totale d'une instruction avant de passer à la suivante.
instuction 1
...et uniquement lorsqu'elle est achevée...
instuction 2
Il me semble que les anciennes versions de Firefox se comportaient de la sorte. Est-ce depuis cette course aux millisecondes gagnées sur le chargement d'une page lancée par les navigateurs que le comportement à changé ?
Message édité par Cver1 le 05-07-2012 à 17:00:38