Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Bonjour,
dans un programme en javascript, je voudrais faire une pause.
J'ai pas mal cherché et je n'ai trouvé que deux méthodes : setTimeout(); mais qui ne me convient pas parceque dans ce cas, la commande est déclenchée avec du retard, mais le pg continue son exéctution.
et
Je n'ai pas entendu parler d'une telle fonction. Il manque énormément de fonction au Javascript, il faut essayer de s'adapter. Dans votre cas, il n'y a pas vraiment de difficultés pour vous adapter :
faitqqc();
...
faitqqc : function () {
bla;
bla;
setTimeout("fatiqqc()", 1000); // Pause d'une seconde
}
en espérant que votre programme est bien sous ce genre de schéma : ) L'inconvénient majeur, c'est que dans votre fonction appellante, l'execution continuera après le premier appel. Les autres appels se feront ensuite.
merci pour les réponses, mais justement j'ai déjà essayé pas mal de choses pour l'adapter, mais je n'ai rien trouvé. Plus je me plonge dans le javascript, plus j'ai l'impression effectivement qu'il manque des choses.
Mon schéma en fait est celui-ci:
f1 : function () {
if (...) {
...
for (..) faitqqc();
}
if (...) {
....
for (...) faitqqc();
}
etc....
}
et la fonction f1 est appelée par un clic de souris, c'est pour faire une animation. Mon idée c'est de faire une animation de plusieurs éléments qui disparaissent (c'est à ça que sert la fonction faitqqc()). Mais où que je mette le settimeout, le programme continue et du coup tout ce que j'arrive à obtenir, c'est une pause de 1sec avant que tous les éléments ne disparaissent d'un coup
merci je vais regarder setinterval et puis continuer à réfléchir à settimeout. Comme en plus ma fonction faitqcc-) a des paramètes, j'ai l'impression que ça va pas être évident. c'est quand même dommage que y'ait pas une vrai fonction pause() dans ce langage !
La solution que je vous ai donnée fait la même chose que SetInterval. Cette dernière fonction est plus pratique lorsque ce sont des mêmes appels répétés, mais est d'une version plus récente de JAvaScript, donc un tout ptit peu moins supportée par les vieux navigateurs.
function sleep(t)
{
var compteur = 0;
var brocoli = setInterval('compteur++', 1000);
while(compteur != t)
{
// on boucle dans le vide
}
clearInterval(brocoli);
return 1;
}
sleep(10); // une pause de 10 secondes
et pourquoi pas un truc comme ca???
(j'ai pas teste, c juste une idee en l'air)
La fonction ne marchera pas parce que compteur est locale (boucle infinie) et parce que le navigateur sera "bloqué" pendant une seconde. (Firefox et IE tournent en 100% CPU)
après mûre réflexion, il apparait que je ne veux plus faire d'animation dans mon programme.
Désolé du dérangement,
merci pour vos réponses, je prends bonne note de tous ces conseils au cas où j'en aurais rebesoin ultérieurement.