[JS] Attendre la fin d'une instruction avant de passer à la suivante

Attendre la fin d'une instruction avant de passer à la suivante [JS] - HTML/CSS - Programmation

Marsh Posté le 05-07-2012 à 16:59:38    

Coucou. :o

 

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
Reply

Marsh Posté le 05-07-2012 à 16:59:38   

Reply

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" :o


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

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.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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";
alert("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.

Message cité 2 fois
Message édité par Cver1 le 05-07-2012 à 18:26:28
Reply

Marsh Posté le 05-07-2012 à 19:27:33    

Cver1 a écrit :

Au départ j'avais les deux instructions suivantes dans cet ordre :
 

document.location.href = "/blabla";
alert("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.


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.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 05-07-2012 à 19:51:33    

Cver1 a écrit :

Au départ j'avais les deux instructions suivantes dans cet ordre :

 

document.location.href = "/blabla";
alert("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.


À 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.


Message édité par masklinn le 05-07-2012 à 19:53:21

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-07-2012 à 16:10:23    

Merci pour vos réponses. :jap: :jap:


Message édité par Cver1 le 07-07-2012 à 16:10:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed