begin process at 2012 05 28 14:53:25
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > SETINTERVAL, SETTIMEOUT ET CLASS OBJET

SETINTERVAL, SETTIMEOUT ET CLASS OBJET


 Information sur la source

Note :
Aucune note
Catégorie :Trucs & Astuces Classé sous :setinterval, settimeout, class, objet Niveau :Débutant Date de création :06/03/2007 Vu / téléchargé :8 414 / 432

Auteur : PetoleTeam

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


 Description

Source sous forme de TUTO
Comment résoudre le problème lié à setInterval ou setTimeout lorsque l'appel fait référence à la fonction d'un objet...
du style
  this.Timer = setInterval( "this.Fonction()", this.Delai);
ou
  this.Timer = setTimeout( "this.Fonction()", this.Delai);

La mise en application du code qui suit reléve d'un niveau débutant++ même si les explications s'approchent d'un niveau initié--


 Conclusion

Il aurait été plus judicieux de livré cela sous forme de TUTORIAL mais c'est plus aisé a réaliser cela sous forme de code.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip CLEAR D'UN INPUT FILE
Source avec Zip FONCTION ALERT ET LES ACCENTS
Source avec Zip LECTURE ET RÉCUPÉRATION DES LIGNES D'UN FICHIER TEXTE
Source avec Zip Source avec une capture RECHERCHE ET COLORISATION, MISE EN SURBRILLANCE
Source avec Zip DIV QUI SUIT LE SCROLLING DE LA PAGE

 Sources de la même categorie

PARSER LES CARACTÈRES HTML D'UNE STRING par jdmcreator
CONSTRUCTION D'UNE TABLE TRIABLE À PARTIR D'UN TABLEAU 2D par phm
Source avec Zip Source avec une capture SUBDIVISER LE RÉSULTAT D'UNE RECHERCHE EN PAGES par kimmp
Source avec Zip TIMER : SETTIMEOUT & SETINTERVAL AMÉLIORÉS par jdmcreator
Source avec Zip Source avec une capture ONGLETS ET CHANGEMENT INSTANTANÉ DE LA LANGUE par william voirol

 Sources en rapport avec celle ci

Source avec Zip TIMER : SETTIMEOUT & SETINTERVAL AMÉLIORÉS par jdmcreator
Source avec Zip [-CLASS-] -> CARROUSSEL D'IMAGES par TheWeasel47
Source avec Zip LES COOKIES ET JAVASCRIPT par Zestyr
Source avec une capture DRAG/DROP/REDIMENSIONNER... par sitajony
Source avec Zip CLASS VERIFICATION DES SAISIES par TheWeasel47

Commentaires et avis

Commentaire de ralecul le 07/03/2007 17:18:41

Salut,

Il y a tout de même beaucoup plus simple pour faire la même chose (ou alors j'ai mal compris :-)

Voila comment je fais :

function Objet_Start(){
  this.Stop(); // On arrete d'abord
  this.Show(); // On montre ensuite
  //-- Appel de la fonction
  var localThis = this;
  this.Timer = setInterval(function(){localThis.Show()}, localThis.Delai);
}

En gros j'utilise la méthode de l'exemple 2 avec une variable locale !

Sinon une remarque : il vaut mieux utiliser une fonction anonyme que de donner le nom de la fonction sous forme de chaine de caractere (en paramètre à setInterval), normalement c'est plus rapide...

J'ai utilisé cette astuce pour réaliser la version OO de mon afficheur de panorama 360° : Yajev.
(Mais il est vrai que je n'avais pas souligné que j'avais rencontré ce problème moi aussi...)

Au fait bravo pour le tuto en html : c'est la classe !

@+

Commentaire de PetoleTeam le 09/03/2007 14:17:41

Bonjour,
J’ai essayé de répondre clairement…

J’ai finalement décidé d’écrire ce SOURCE TUTO suite aux problèmes rencontrés par les codeurs sur pas mal de Forum, et il a bien évolué en fonction des différents cas rencontrés le but étant d’essayer d’en faire une synthèse claire et accessible au plus grand nombre.

Je suis, donc, resté volontairement hors function anonyme, que j'utilise d’ailleurs peu, pour des raisons de clarté de code, pour ne pas ajouter au trouble, le problème étant pour moi au départ ailleurs.

Comme je l’annonce dans les conclusions, bien peu exhaustive, de l’index.htm
"Je ne doute pas qu'il existe d'autres façons de résoudre ce problème..."

En ce qui concerne "le plus simple pour faire la même chose" je reste dans l’expectative…

Passage de la fonction par string ou par pointeur la ne devait pas être la question, bien que la solution 2BIS passe la fonction par pointeur en fait et est très proche de la fonction anonyme dans par son mécanisme, enfin me semble t-il.

Sur le plan de la vitesse :
A l’époque sur mon 486SX la question ne se posait même pas le passage par pointeur n’étant encore pas d’actualité et  je n’ai pas de bille, actuellement, pour le tester sauf à savoir qu’il y a transformation d’une chaîne en pointeur avant exécution de la fonction donc fatalement des temps horloge en plus, mais en contre partie, dans ta méthode, il y a affectation d’un variable avant appel puis création d’une fonction, donc sans info sur la manière dont traite cela les navigateurs je ne saurais répondre avec certitude.
Il faudrait pour bien faire analyser le code généré par les différents navigateurs à la lecture des SCRIPTs.

Seule certitude les fonctions crées avec le constructeur Function, new Function( blabla..., sont évaluées à chaque appel, donc en terme de vitesse à éviter autant que faire ce peu.

Si j’avais réalisé un TUTORIAL exhaustif, ou presque, il est vrai qu’il aurait été impensable de ne pas parler de ton exemple et de la méthode par function anonyme.

Merci pour ton commentaire qui m’a permis de prendre un peu de recul.
;0)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

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" dans une classe [ par francois44 ] Bonjour à tous!Je suis actuellement en train de bosser sur une classe d'affichage de NEWS.Je sais qu'il y en a plein dans les sources, mais j'ai rien arguments dans setInterval() ? [ par jdmcreator ] Bonjour, décidément, setInterval et setTimeOut() sont des fonctions qui m'auront causé beaucoup de problème ! Bon, pour en venir au vif du problème, setTimeout [ par DarkCid ] Bonjour,j'essaye de créer mon objet compte à rebours pour mon site. pour l'instant, j'ai ceci :function Timer(){   var time         = '';        var c Problême de setTimeout dans un objet [ par kurt67 ] Salut à tous! Mon problême est assez simple et ça fait deux jours que je cherche une solution et je n'en ai pas trouvé. J'ai un objet avec des méthode Problème setTimeout et poo - valeur qui ne change pas (au secours...) [ par 0Philooz0 ] Bonjour,J'ai un problème ( depuis maintenant deux jours ) avec le bout de code suivant:///Portion de code qui pose problème.fun Erreur "Objet Attendu" [ par mocbidouille ] Bonjour,J'ai un souci qui va me rendre dingue... J'ai cherché la solution tout l'aprem en vain... Ma page me renvoi constament une erreur "Objet Atten class et id définis dans une même balise ? [ par sagat06 ] Bonjour à tous.J'aimerais savoir s'il existe un moyen de définir à la fois la class et l'id d'une div, du genre:<div class='no1' id='no2'>En eff Objet active x pour creer un serveur ? [ par papipsycho ] Bonjourje recherche un object active x pour fair comme ajax mes sous forme de serveur que l'on puisse ouvrire un port ect ...--==Papi Psycho==-- tableau desactivation [ par mouness ] Salut a tous il y a quelque jour grace a un certain jedinoobewan (perso c'est obiwan) bref j'ai mi en place dans mon code un truc du genre ca<html&


Nos sponsors


Sondage...

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 : 1,981 sec (4)

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