begin process at 2012 05 28 10:18:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FUNCTION.WAITFOR : ATTENDRE UNE CONDITION AVANT D'EXECUTER UNE FONCTION

FUNCTION.WAITFOR : ATTENDRE UNE CONDITION AVANT D'EXECUTER UNE FONCTION


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :multithread, waitfor, settimeout, attendre Niveau :Initié Date de création :17/04/2006 Date de mise à jour :18/04/2006 13:01:42 Vu :6 880

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


 Description

Ce code rajoute une fonction statique à l'objet Function qui permet d'attendre que la condition soit vrai pour réaliser la fonction, c'est utile dans le cas d'une application "multithread" en javascript. Le concept se rapproche un peu des evenements.

//Les arguments :
condition : un string contenant un boolean, ou une fonction, qui indique si oui ou non on peut executer la fonction fnc
fnc       : fonction qui sera executé lorsque la condition sera vrai
caller    : objet dans lequel on execute la fonction
args      : [optionel] Array contenant les différents arguments de la fonction
interval  : [optionel] la durée entre laquelle on doit vérifier la condition, par défaut à 5ms

On peut l'utiliser ainsi,
Function.waitFor('this.isPageLoaded', this.displayPictures, this, ['pageLoad']);

Source

  • Function.parse = function(functionName){return eval(functionName);}
  • Function.waitFor = function(condition, fnc, caller, args, interval){
  • var _condition = Function.parse.call(caller, condition);
  • if (_condition && (typeof(_condition)=='function' ? _condition() : true))
  • fnc.apply(caller, args || []);
  • else
  • window.setTimeout(function(){Function.waitFor(condition, fnc, caller, args || [])}, interval || 5);
  • }
Function.parse = function(functionName){return eval(functionName);}

Function.waitFor = function(condition, fnc, caller, args, interval){
    var _condition = Function.parse.call(caller, condition);
    if (_condition && (typeof(_condition)=='function' ? _condition() : true))
        fnc.apply(caller, args || []);
    else
        window.setTimeout(function(){Function.waitFor(condition, fnc, caller, args || [])}, interval || 5);
}

 Conclusion

Pour bien comprendre cette source il vous faut comprendre la méthode apply de l'objet Function (http://developer.mozilla.org/en/docs/Core_JavaScr ipt_1.5_Reference:Objects:Function:apply)


 Historique

18 avril 2006 13:01:43 :
Gros Bug !

 Sources du même auteur

IMPLÉMENTATION DU TYPE GUID AVEC MICROSOFT AJAX
Source avec Zip CHRONOMÈTRE MESURANT LA DURÉE D'UNE FONCTION
Source avec Zip Source avec une capture GADGET POUR VISTA : CPU GRAPH
DESORGANISÉ UN TABLEAU : LA MÉTHODE SORT
FONCTION GETELEMENTSBYCLASS

 Sources de la même categorie

Source avec Zip Source avec une capture SLIDESHOW IMAGES ET TEXTES EN PUR JAVASCRIPT par ansuzpeorth
Source avec Zip INPUT TEXT AUTOMATIQUE CREATION SUPPRESSION par lycanges
Source avec Zip Source avec une capture TABLE_SV : TABLEAU DYNAMIQUE, MONTRER/CACHER COLONNE SUR DEM... par synanceia
COLONNES ADAPTABLES EN HAUTEUR par dronoide
Source avec Zip VECTEURS ET MATRICES: OUTILS GRAPHIQUES UTILES par william voirol

 Sources en rapport avec celle ci

Source avec Zip TIMER : SETTIMEOUT & SETINTERVAL AMÉLIORÉS par jdmcreator
Source avec Zip SETINTERVAL, SETTIMEOUT ET CLASS OBJET par PetoleTeam

Commentaires et avis

Commentaire de apxa le 19/04/2006 00:38:17

iop,
Ca m'a l'air pas mal.
Au niveau browser ca fonctionne sous FF, IE, Opera, Mozila ?

Have Fun ;)

Commentaire de jesusonline le 19/04/2006 00:45:09 administrateur CS

Bonsoir,

Je pense que ca doit fonctionner sur la plupart des navigateurs récents puisque cela n'utilise que du js tout ce qu'il y a de plus "basique" :) j'utilise ca avec des sites qui fonctionne pour IE6 / IE7 / FF / Opera ...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème : window.blur() [ par Mickael ] Salut !j'ai cette fonction :setTimeout("xtpop.blur();",10000); // je réduit la popup au bout de 10 sec .setTimeout("xtpop.?????();",10000); // je veux SeTtimeout et frame [ par fcdconnect ] petit probleme ce script ne fonctionne pas (le timeout)onClick="javascript:setTimeout(parent.topFrame.document.location.reload(),4000);"l'objectif est Fonction recursive settimeout [ par petit_stagiaire ] bonjour,j'essaye de de faire une fonction qui se rappelle régulièrement avec un intervalle de temps.probleme : netscape me dit lors du rappel que la f frame + SetTimeout(reload(),100) [ par HFanny ] Bonjour,Je vous expose mon problème :J'ai un frameset (cadres.html) contenant 2 frames (cadreHaut.php et cadreBas.php).La page cadreHaut.php exécute u SetTimeout [ par Atorina ] Bonjour,J'ai fait un code qui, lorsqu'on fait un clic droit, affiche un menu personnalisé. J'ai voulu faire un setTimeout pour que le menu se ferme au Redirection [ par massacr ] Bonjour, je voudrais faire un compte à rebours avec un bouton démarrer et un autre arreter.Le bouton démarrer marche bien mais lorsque que l'on clique fonction avec parametres [ par suomi ] J'aimerais passer un objet (this) en parametre d'une fonction appelée par setTimeout (comme suit), mais je n'y arrive pas.La fonction setTimeOut deman setTimeout en cours??? [ par rttb ] Salut, Je lance un : q=setTimeout(fonction,1000) par une fonction appelee par un lien.si je click 2 fois sur le lien, le timer est demarre deux fois.J setTimeout !!! ARg [ par Horfee ] J'ai un probleme avec la fonction setTimeout et la fonction event.x(ou y). en effet dans une fonction du style :function fnt(){ window.status = even problème setTimeOut [ par RockmanX ] Salut!voici un petit code que j'ai mis sur une page qui affiche des photos en diaporama:<SCRIPT LANGUAGE='JavaScript'>    &n


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales