Une fonction qui dort ======> sleep( seconde );

Soyez le premier à donner votre avis sur cette source.

Snippet vu 36 574 fois - Téléchargée 27 fois

Contenu du snippet

Salu a tous le monde,
je tiens a vous présenter une petite source de rien du tous mais
qui peux devenir une vrai aide pour certain programmeur,
qui recherche la fonction sleep( x );
qui existe dans bien des langages ( c/c++, Java, ... )

Je l'ai créer car j'en avait absolument besoin
pour un de mes script ( ^^ )" [ Bien évidament ]
Mais je l'ai ossi diffuser pour permettre
a de nombreux programmeurs de pouvoir en profiter,
car énormément sont ceux qui la cherche....

Merci....

Source / Exemple :


// Fonction de "http://www.pbdr.com/vbtips/asp/JavaNumberValid.htm"
function is_numeric( strString )
//  check for valid numeric strings	
{
	var strValidChars = "0123456789.-";
	var strChar;
	var blnResult = true;

	if (strString.length == 0) return false;
	
		//  test strString consists of valid characters listed above
		for (i = 0; i < strString.length && blnResult == true; i++)
		{
			strChar = strString.charAt(i);
			
			if (strValidChars.indexOf(strChar) == -1)
			{
				blnResult = false;
			}
		}

		return blnResult;
}

function DateInt()
{
	var now = new Date();

		var h = now.getHours();
	        var m = now.getMinutes();
       		var s = now.getSeconds();
				
	return ( h * 60 * 60 ) + ( m * 60 ) + s;
}

function sleep( intTime )
{
	if( !is_numeric( intTime ) )
	{
		return;  // Arret de l'éxecution
	}
		
	intTime = ( intTime / 1000 );
	var Exp = DateInt() + intTime; // TimeOut
		
		while( Exp > DateInt() )
		{
			;
		}
}

Conclusion :


La fonction sleep( x ); a besoin de 2 autres fonctions pour son bon déroulement :

- la fonction DateInt() :
Pour indiquer les heures, minutes et secondes de la journées sous forme de seconde

- la fonction is_numeric( X ) :
Pour vérifier si X est numérique, notez que cette fonction n'est pas de moi,
Et que je remercie c'est créateur....

Il est éventuellement possible que en indiquant
une valeur supérieur a environ 50 voir 60 secondes,
que le navigateur ne réagissent plus pendant une courte période....

A voir également

Ajouter un commentaire

Commentaires

Messages postés
17
Date d'inscription
lundi 3 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

Mon problème est qu'en fait j'ai une boucle basée sur les degrés de rotation. Voici le code,ce sera plus simple:

deg=valeur d'un degré
rotation = cmb de degrés de l'angle ont été faits

function rotate(sens)
{
for( var rotation = 0; rotation <= angle; rotation += deg )
{
//modification des attributs top et left des images avec comme parametre externe: rotation(pour els fonctions sin et cos)
->>>sleep(250);//la j'aimerait attendre environ .25s ou 250ms
}


}
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008

pour arrêter un timer, il faut faire clearInterval(timerID).
pour empêcher une exécution décalée, il faut faire clearTimeout(timerID)

timerID est la valeur de retour de setInterval/setTimeout
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008

setInterval(function() {
// Cette fonction se lance toutes les {nbSeconde} seconde(s).
}, nbSeconde * 1000)

setTimeout(function() {
// Cette fonction se lancera une seule fois dans {nbSeconde} seconde(s).
}, nbSeconde * 1000)

Tu peux aussi faire setTimeout(uneFonction, nbSeconde * 1000)
Messages postés
17
Date d'inscription
lundi 3 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

Voici un autre exemple pour la fonction sleep:

Dans le cadre d'une modification de place des images, il peut-être utile d'attendre un peu sinon on arrive directement au résultat et le client ne voit pas l'effet...

J'ai lu le topic mais je ne comprends pas bien les fonctions setInterval() et setTimeout().

Si qqn voulait bien faire la fonction sleep avec une de ces fonctions,j'en serait grandement reconnaissant...

Pour info, je fait une rotation d'images autour d'un point et il faut donc attendre entre chaque degré de rotation pour voir l'effet.
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
effectivement... j'avais pas pensé
Afficher les 54 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.