Création
d'entreprise
Posez votre question Signaler

Pause javascript [Résolu]

Poyoman 410Messages postés 15 août 2009Date d'inscription 14 mars 2012Dernière intervention - Dernière réponse le 9 oct. 2009 à 17:36
Bonjour,
Voilà un petit problème qui m'arrive, j'aimerais faire une pause dans une fonction !!!
Voilà le code que j'ai tapé :
function pause(duree)
{

var date_debut = new Date();
var actdate = new Date();

	while (actdate.getTime() - date_debut.getTime() <= duree)
	{
	actdate = new Date();
	}

}

Le problème c'est que la pause dure bien le temps voulu, mais bloque tout pendant la pause !!!
Merci beaucoup si vous arrivez à trouver la solution
Lire la suite 

Pause javascript »

Suggestions
8 réponses
Réponse
+2
moins plus
Salut,

Oui c'est un comportement normal, on ne peut pas faire de pause en javascript,
il faut découper ton code en fonctions, et utiliser l'instruction "settimeout" pour appeler l'étape suivante après le délai choisi :

alert( "debut du code");
settimeout( "etape2();", 5000);

function etape2() {
     alert( "suite du code");
} 


Attention, l'execution ne s'arretera pas apres l'appel a settimeout, mais la fonction etape2 sera executée après le délai choisi.
Ajouter un commentaire
Réponse
+1
moins plus
hello

a ta ligne 81 date_debut correspond a une date et non un nombre
il faudrait que tu mettes date_debut.getTime()

ou si tu ne veut pas d'embêter avec le .getTime()
tu remplace avant quelques lignes au dessus var date_debut = new Date();
par var date_debut = new Date().getTime();

en espérant t'avoir aidé :)


ps: le sujet est mis en résolu c'est fait exprès ?
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup !!!
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup !!!
J'ai refait mon code, cependant, j'ai une erreur bizarre :
Détails de l’erreur de la page Web

Message : ')' attendu
Ligne : 1
Caractère : 17
Code : 0
URI : http://www.poyostudio.13.fr/wPoyOs/app/plusoumoins/ 


et encore plus bizarre, selon IE l'erreur se trouve dans le html et non le javascript

( l'adresse du site si tu veux regarder : http://www.poyostudio.13.fr/wPoyOs/app/plusoumoins/ )

function pause(duree)
{

	var date_debut = new Date();
	var actdate = new Date();
	
	pause2(duree,date_debut);
}

function pause2(duree,date_debut)
{
	var actdate = new Date();

	if (actdate.getTime() - date_debut.getTime() <= duree)
		{
		setTimeout("pause2(" + duree + "," + date_debut + ");", 10);
		}
}



function pause3(duree,date_debut)
{
	var actdate = new Date();

	if (actdate.getTime() - date_debut.getTime() <= duree)
		{
		setTimeout("pause3(" + duree + "," + date_debut + ");", 10);
		}
}
Ajouter un commentaire
Réponse
+0
moins plus
REmerci beacoup !!!

en fait j'ai mis le sujet en résolu parceque je ne pensez plus avoir d'erreur.

Ca ne marche toujours pas, mais je devrais m'en sortir
Ajouter un commentaire
Réponse
+0
moins plus
Euh excuse moi de te REdéranger, mais j'ai encore un problème

en fait, mon code marche, mais lorsque je fait un truc du genre

pause(3000);
instruction_suivante;


Le programme exécute instruction suivante et pause() en même temps !!!


function pause(duree)
{
	var date_debut = new Date();
	var ndate_debut = date_debut.getTime();
	var actdate = new Date();
	
	pause2(ndate_debut,duree);

}

function pause2(ndate_debut,duree)
{
	actdate = new Date();

	if (actdate.getTime() - ndate_debut < duree)
		{
//						alert (actdate.getTime() - ndate_debut);
		setTimeout("pause3(" + ndate_debut + "," + duree + ");", 10);
		}

}



function pause3(ndate_debut,duree)
{
	actdate = new Date();

	if (actdate.getTime() - ndate_debut < duree)
		{
		setTimeout("pause2(" + ndate_debut + "," + duree + ");", 10);
		}
//			alert (actdate.getTime() - ndate_debut);
}
Ajouter un commentaire
Réponse
+0
moins plus
en fait j'ai l'impression que tu n'as pas très bien saisi le fonctionnement de ton pause ^^

le setTimeout sert a executer une fonction mais plus tard
il ne fait pas de pause a proprement parler

pour faire comme si tu avais une pause il faudrait que tu commence a executer ton programme puis tu fais un settimeout de de ce que tu veut qu'il arrive après la pause (comme l'a dit boost en fait)
Ajouter un commentaire
Réponse
+0
moins plus
Ok, je n'avais pas compris que le settimeout n'était pas bloquant.
Ajouter un commentaire
Ce document intitulé « Pause javascript » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?