-
équivalent de sleep()
Bonjour
Je ne trouve pas de solution à mon problème j'ai l'impression qu'il en existe pas vraiment.
J'ai mon script qui s'execute, qui remplace des images sur l'écran pour que l'utilisateur puisse voir ces images puis les remet les images d'origine. Entre ces 2 phases, il n'y a pas d'intervention de l'utilisateur donc je souhaiterais mettre une pause dans ma fonction javascript entre ces 2 étapes pour que l'utilisateur est le temps de voir les images. Je cherche un équivalent de sleep ou wait de sorte à arrêté l'exécution du script.
J'ai bien vu qu'il existait une fonctions setTimeout() mais celle ci ne correspond à ce que je souhaite. Cette fonction permet d'exécuter un programme au bout d'un certain nombre de temps alors que moi je souhaite arrêter l'exécution de mon programme.
En faisant quelques recherches, j'ai trouvé des solutions avec des while et une sortie du la boucle quand le temps était terminé mais es ce qu'il n'y aurait pas plutôt une solution avec une attente passive ?
Merci d'avance
-
Il n'existe pas d'équivalent de sleep en JavaScript et la solution du while ne me semble pas optimale.
Selon moi, la meilleure méthode serait de réorganiser ton code et d'utiliser setTimeout ou setInterval.
-
J'ai pensé à une autre solution sinon c'est un message d'alerte mais c'est quand même gênant pour l'utilisateur .... Avec setTimeout je pense que le problème reste le même ce n'est pas après un certain temps d'exécution qui peut d'ailleurs varié que le reste du programme doit être executer...
-
modifie une variable à la fin du code qui fait attendre
et teste cette variable dans un setInterval
quand la variable est modifiée fais un clearIinterval et lance la fonction du reste du code
-
J'ai trouvé une solution en utilisant l'AJAX. J'utilise pour la communication avec le serveur une fonction appelé CallScript synchrone. Comme je ne pouvait pas faire mon sleep coté client, je l'ai fait coté serveur et comme je suis synchrone, je n'ai pas de soucis, mon script javascript attend patiemment que mon serveur est fini de dormir.