Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
901 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Exécuter une fonction toutes les x secondes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exécuter une fonction toutes les x secondes

n°1156911
momo194
Posté le 22-07-2005 à 10:57:08  profilanswer
 

Bonjour,
 
Jé débute en Javascript(assez bien de PHP à mon actif).
Je voudrais exécuter la  fonction (2)toutes les x secondes, ceci par l'intermédiaire de la fonction (1), lancée à partir du chargement de la page.
J'ai déjà trouvé que il fallait charger la fonction (1) comme ceci;
 

Code :
  1. <body onload="function_un()">


 
Mais je n'ai aucune idée de l'allure de function_deux, malgré que je sais qu'il faut combiner avec setimeout().
 
Quelqu'un pourrait m'aider ? merci

mood
Publicité
Posté le 22-07-2005 à 10:57:08  profilanswer
 

n°1156919
FlorentG
Unité de Masse
Posté le 22-07-2005 à 11:03:29  profilanswer
 

Déjà vire tout ce qui est JS dans le code HTML

...
  <script type="text/javascript" src="pouet.js"></script>
</head>
<body>
 ...
</body>
</html>


Ensuite dans le fichier js :

function deux() {
 
  ...
 
  setTimeOut("deux()", 1000);
}
 
window.onload = function() {
 
  deux();
}

n°1156945
momo194
Posté le 22-07-2005 à 11:16:20  profilanswer
 

Ok, Merci.
 
Mais ça ne marche pas, avec ce code, la page est chargée, la fonction exécutée 1 fois après 1 seconde.
 
Mais moi je veux que elle soit exécutée toutes les secondes, un nombre indéfini de fois.

n°1156955
masklinn
í dag viðrar vel til loftárása
Posté le 22-07-2005 à 11:19:35  profilanswer
 

setInterval...
 
Et accessoirement sa fonction n'effectue pas l'action qu'une fois puisqu'elle se réenregistre à chaque exécution (elle remet en place un timer) [:dawa]
 
Par contre rappelle moi l'url de ta page que j'y aille pas [:dawa]


Message édité par masklinn le 22-07-2005 à 11:20:30

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1156964
FlorentG
Unité de Masse
Posté le 22-07-2005 à 11:25:07  profilanswer
 

Ma version s'exécute toutes les secondes :o

n°1156980
momo194
Posté le 22-07-2005 à 11:39:49  profilanswer
 

ok, je te crois, mais chez moi, cela ne marche pas, regarde:
 
contenu de card.js :
 

Code :
  1. function request03()
  2. {
  3. var xhr_object = null;
  4. if(window.XMLHttpRequest) // Firefox
  5.  xhr_object = new XMLHttpRequest();
  6. else if(window.ActiveXObject) // Internet Explorer
  7.  xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
  8. else
  9. { // XMLHttpRequest non supporté par le navigateur
  10.  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  11.  return;
  12. }
  13.  xhr_object.open("GET", "card.txt", true);
  14. xhr_object.onreadystatechange = function anonymous()
  15. {
  16.  if(xhr_object.readyState == 4) document.write(xhr_object.responseText+"<br>" );
  17. }
  18. xhr_object.send(null);
  19.  setTimeOut("request03()", 1000);
  20. }
  21. window.onload = function()
  22.  {
  23.     request03();
  24.  }


 
contenu de card.txt, que je mets à jour dynamiquement:  
 

Code :
  1. [un nombre entre 0 et 99]


 
contenu de get_cards.html :
 

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title>Cards</title>
  5. <script type="text/javascript" src="card.js"></script>
  6. </head>
  7. <body>
  8. </body>
  9. </html>


 
Je voudrais que cela m'affiche, un en desosus de l'autre, toutes les secondes, le contenu de card.txt.
 
Merci


Message édité par momo194 le 22-07-2005 à 11:40:10
n°1156984
joachimsen​e
Posté le 22-07-2005 à 11:44:02  profilanswer
 

Pour info, je passais par là, je précise:
 
Les fonctions setInterval et setTimeout retournent des handlers (pointeur sur un évenement) qui permettent d'arrêter l'exécution répétée (setInterval) ou d'annuler le lancement retardé (setTimeout)
 

Code :
  1. var hMaFonction = setInterval("MaFonction()", 1000);
  2. //...
  3. <a href="javascript:clearInterval(hMaFonction)">Stop !</a>


 
Avec un handler sur un Timeout, c clearTimeout qu'il faut appelé, c tout !
 
Sur certains navigateur, j'ai déjà eu le problème que je n'avais pas affecté à une variable la valeur de retour de setTimeout, le handler, et ça marchait po...


Message édité par joachimsene le 22-07-2005 à 11:44:37
n°1157139
momo194
Posté le 22-07-2005 à 13:45:53  profilanswer
 

En fait ce que je voudrais, c'est que le résultat(affiché via document.write) de la fonction qui s'exécute X fois, soit changeant, sans refresh de page.
 
Mais je n'y arrive pas par les méthodes données, quand je change le contenu de card.txt de manière artificielle, manuelle, le javascript, m'affiche toujours le contenu initial de card.txt.
 
Y-a-t'il des solutions ? Merci

n°1157140
FlorentG
Unité de Masse
Posté le 22-07-2005 à 13:48:05  profilanswer
 

document.write est obsolète. Faut utiliser soit la propriété innerHTML d'un élément, soit des fonctions DOM...

n°1157310
momo194
Posté le 22-07-2005 à 15:31:10  profilanswer
 

ok.
 
Mais je n'arrive pas à combiner avec innerHTML, pour arriver à ce que je veux, ma page reste toujours figée.
Que devrais-je modifier dans mon code pour que ça soit dynamique, comme explique plus haut ?
 
Merci

mood
Publicité
Posté le 22-07-2005 à 15:31:10  profilanswer
 

n°1157585
momo194
Posté le 22-07-2005 à 19:47:37  profilanswer
 

C'est bon j'ai trouvé, MAIS il se passe que la page ne se refresh pas(sans blague, c'est le but), mais le titre change en l'adresse du script.
 
Que faire ?
 
Merci


Message édité par momo194 le 22-07-2005 à 21:19:00

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Exécuter une fonction toutes les x secondes

 

Sujets relatifs
[fonction recursive]affichage de contenu d'un dossier en ascii[SQL]fonction de comparaison de chaines
[Résolu](j'espère)[JS] fonction de type isset[JS] Faire disparaitre un bouton au lancement d'une fonction JS lourde
Fonction à appeler dans un formPb avec les sockets: fonction bind
[Javascript] Petit problème de fonctionDetection de la fin d'une fonction ?
Formulaire en fonction d'un autre formulaire[PHP] récupérer une variable dans une fonction
Plus de sujets relatifs à : Exécuter une fonction toutes les x secondes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR