Question

salut je ne suis pas sûr où commencer à ce que les événements et leurs gestionnaires est mon point le plus faible dans la programmation. ...

setInterval(function(){
   //code goes here
},1000);

comme nous le savons cela va dans une boucle / infinie

ma question est de savoir si le code de la fonction prend plus d'une seconde (par exemple: 5 secondes). À la fin ne l'intervalle le 2, 3 et n-ième seconde ce qui provoque le script à exécuter lent

ainsi que ci-dessus: lorsque vous cliquez sur un élément avec la fonction onclick il ne fonctionne pas jusqu'à ce qu'il soit son tour de champ ...

est-il un moyen pour permettre au 1er fini intervalle puis exécutez à nouveau si le champ d'application est 0 ...

autrement dit de mettre une action en priorité les utilisateurs.

Je ne sais pas si im faire beaucoup de sens, mais s'il vous plaît commentaire ci-dessous et je vais essayer d'expliquer plus.

Était-ce utile?

La solution 2

http://www.w3schools.com/js/js_timing.asp

défilement @ Infinite Loop explique comment l'annuler ou à attendre qu'elle se termine avant qu'il ne se présente à nouveau ...

Autres conseils

setInterval exécutera une nouvelle itération de la boucle à l'intervalle défini, peu importe combien de temps le code prend à l'intérieur. Il est un excellent moyen de enliser / verrouiller le navigateur.

Vous pouvez gérer cela dans plusieurs façons, selon les événements que vous cherchez et comment vous voulez qu'il flux.

Si vous travaillez principalement dans jQuery, une option serait d'utiliser la méthode file d'attente () jQuery pour avoir votre fonction elle-même appeler récursive une fois que le reste de votre code est terminé. Dans les cas simples qui peuvent travailler.

Si votre code est vraiment plus dépendant de l'utilisateur, que il suffit d'utiliser l'un des gestionnaires d'événements de nombreux jQuery comme clic () ou bind () pour déclencher le code lorsque l'utilisateur prend cette action.

Sans plus d'informations, il est difficile de vous donner une solution spécifique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top