Exécuter une fonction toutes les x secondes

Exécuter une fonction toutes les x secondes - HTML/CSS - Programmation

Marsh Posté le 22-07-2005 à 10:57:08    

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

Reply

Marsh Posté le 22-07-2005 à 10:57:08   

Reply

Marsh Posté le 22-07-2005 à 11:03:29    

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();
}

Reply

Marsh Posté le 22-07-2005 à 11:16:20    

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.

Reply

Marsh Posté le 22-07-2005 à 11:19:35    

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
Reply

Marsh Posté le 22-07-2005 à 11:25:07    

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

Reply

Marsh Posté le 22-07-2005 à 11:39:49    

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
Reply

Marsh Posté le 22-07-2005 à 11:44:02    

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
Reply

Marsh Posté le 22-07-2005 à 13:45:53    

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

Reply

Marsh Posté le 22-07-2005 à 13:48:05    

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

Reply

Marsh Posté le 22-07-2005 à 15:31:10    

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

Reply

Marsh Posté le 22-07-2005 à 15:31:10   

Reply

Marsh Posté le 22-07-2005 à 19:47:37    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed