Est-t-il un équivalent en Javascript ou Jquery fonction de veille?
Je veux quelque chose comme ceci en javascript.
for (i = 0; i < 10; i++) {
alert(i);
//now sleep 1 sec
sleep(1000);
}
est-il construit en Javascript ou Jquery pour cela?
Merci!
- La première chose que je voudrais faire avant de poster stackoverflow.com/search?q=[JavaScript]+sleep et vous pouvez le voir il ya beaucoup de solutions déjà
- La prochaine chose est de vous demander pourquoi vous avez besoin d'un sommeil, et non pas un événement basé sur une solution comme Zoidberg suggère.
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas une telle chose, directement. Vous auriez à dire à javascript pour "réveiller" quelque chose " après un certain temps à l'aide de
setTimeout
.Ce "quelque chose" serait le code que vous prévoyez d'exécuter après le sommeil, bien sûr.
À partir d'un exemple que j'ai trouvé sur internet:
Mais c'est fragile design. Vous feriez mieux de repenser la logique d'entreprise à vraiment faire quelque chose après une seconde: appel d'une fonction différente au lieu d'utiliser ces artificiel helper variables.
utilisation
setTimeout
méthode
Première question, pourquoi voulez-vous dormir dans une boucle? Si cela est nécessaire, peut-être un événement système devrait être mis en place. J'ai moi-même essayé le sommeil tactique de nombreuses fois pour le multi-thread de programmation javascript et trouve qu'il ne fonctionne pas bien. La meilleure façon de faire du multi-threading dans le javascript est d'utiliser un système tel que celui prévu par YUI ou presque tout autre cadre. Votre écouteur abonnez-vous à cet événement et de faire quelque chose chaque fois qu'il se produit. DANS ces cadres, vous avez le plein contrôle de votre propre événement se déclenche afin de leur pas une grosse affaire.
Voici le lien pour le YUI l'événement de cadre.
http://developer.yahoo.com/yui/examples/event/index.html
Ici est de savoir comment il pourrait être codés à l'aide de YUI
Cette façon de faire est beaucoup plus propre et plus compact. Ou si vous ne voulez pas utiliser un évènement cadre d'essayer cette
Qui vous offre ce dont vous avez besoin, et de ses plus compact.
Mais si vous devez VRAIMENT avoir une fonction de veille dans votre code, alors je vous recommande de faire un appel ajax synchrone à un simple serverside script. Ensuite, vous pouvez utiliser le code sur le serveur de dormir si vous le souhaitez. Ci-dessous un lien à une question posté ici qui vous montre comment faire un appel synchrone.
Comment puis-je obtenir jQuery pour effectuer une synchrone, plutôt que asynchrone, requête Ajax?
Mais je vous recommande fortement d'aller pour le setTimeout façon. Beaucoup plus propre, et vous ne voulez probablement pas à faire tout serverside appels si vous pouvez l'éviter.
this
tout, mais votremyObj
. Vous avez besoin d'un peu de stocker le nécessairethis
par une fermeture.J'ai cherché/googlé tout à fait un peu de pages sur javascript/sommeil attendre... et il n'y a PAS de réponse, si vous voulez javascript "d'EXÉCUTION, de RETARD, de COURIR"... ce que la plupart des gens ont été soit, "RUN, RUN(inutiles), EXÉCUTER" ou "RUN, RUN + retardé RUN"....
Donc j'ai mangé des hamburgers et eu la pensée:::
voici une solution qui fonctionne... mais vous devez couper votre exécution de codes...:::
//.........................................
//exemple1:
//....................................
//exemple2:
J'ai vu ce commentaire "j'ai essayé d'utiliser setTimeout, mais je N'ai PAS besoin d'une continuation de la fonction" et de la pensée, oui, vous avez. Ce que vous n'avez pas besoin de boucle. Vous avez besoin d'une fonction récursive.
CE
SE TRADUIT PAR CE
Exemple: http://jsfiddle.net/q76Qa/
Bien, si vous avez de PHP installé sur le serveur, vous pourriez utiliser
$.load
ou semblable à appeler un fichier PHP qui n'asleep(int)
en elle...