Rafraichissement Javascript
Résolu
xSmokingbenx
-
PhilPhP -
PhilPhP -
Bonjour,
Voici mon problème. J'ai une fonction Ajax exécutant un certain code.
Pour tester le fonctionnement de celle ci, je l'apelle via un lien qui l'exécute. Car marche.
Mais ce qu'il me faudrait, c'est que cette fonction s'éxécute automatiquement toutes les 5 secondes, avec éventuellement un arrêt au bon de X minutes sans activités sur la page.
J'ai essayé ainsi:
<td id="xmlhttp">
<script language="javascript">
setTimeout("request('afficher.php','xmlhttp')", 5000);
</script>
</td>
request('url','contenu') étant ici ma fonction ajax (qui marche)
Résultat: La fonction Ajax request() s'exécute correctement, mais 5 secondes après le chargement de la page, et une seule fois.
Comment la faire s'exécuter au chargement de la page, et ensuite automatiquement toutes les 5 secondes ?
Et éventuellement (cela ne m'est pas indispensable, çà serait un plus ) arrêter ce rafraichissement automatique au bout de X minutes sans activités sur la page ?
Précisions: Mon projet est un forum/chat que le demandeur inclura dans son site pour remplacer son système actuel.
Mon fichier forum.php contenant la fonction Ajax affichant les messages, ainsi que le formulaire pour en écrire étant inclu dans une page index.php fixe avec juste le contenu qui change en fonction de la page sélectionné, donc un <body onload="maFonction()"> n'est surement pas possible)
Voici mon problème. J'ai une fonction Ajax exécutant un certain code.
Pour tester le fonctionnement de celle ci, je l'apelle via un lien qui l'exécute. Car marche.
Mais ce qu'il me faudrait, c'est que cette fonction s'éxécute automatiquement toutes les 5 secondes, avec éventuellement un arrêt au bon de X minutes sans activités sur la page.
J'ai essayé ainsi:
<td id="xmlhttp">
<script language="javascript">
setTimeout("request('afficher.php','xmlhttp')", 5000);
</script>
</td>
request('url','contenu') étant ici ma fonction ajax (qui marche)
Résultat: La fonction Ajax request() s'exécute correctement, mais 5 secondes après le chargement de la page, et une seule fois.
Comment la faire s'exécuter au chargement de la page, et ensuite automatiquement toutes les 5 secondes ?
Et éventuellement (cela ne m'est pas indispensable, çà serait un plus ) arrêter ce rafraichissement automatique au bout de X minutes sans activités sur la page ?
Précisions: Mon projet est un forum/chat que le demandeur inclura dans son site pour remplacer son système actuel.
Mon fichier forum.php contenant la fonction Ajax affichant les messages, ainsi que le formulaire pour en écrire étant inclu dans une page index.php fixe avec juste le contenu qui change en fonction de la page sélectionné, donc un <body onload="maFonction()"> n'est surement pas possible)
A voir également:
- Rafraichissement Javascript
- Telecharger javascript - Télécharger - Langages
- Javascript echo ✓ - Forum PHP
- A javascript error occurred in the main process - Forum Windows
- A javaScript error occurred in the main process - Forum Handicap / Accessibilté
- Impossible de changer la fréquence de rafraîchissement ✓ - Forum Ecran
5 réponses
et si tu mets ton setTimeout("request('afficher.php','xmlhttp')", 5000); à la fin de la fonction request ?
Ah si voilà une idée :
Tu crée une fonction que t'appelle comme tu veux : par exemple appeler :
function appeler()
{
request('afficher.php','xmlhttp');
setTimeout("appeler()", 5000);
}
et dans ton code à la place d'appeler la fonction request tu appelle appeler qui appellera request toutes les 5 sec si je ne me trompes pas.
Tu crée une fonction que t'appelle comme tu veux : par exemple appeler :
function appeler()
{
request('afficher.php','xmlhttp');
setTimeout("appeler()", 5000);
}
et dans ton code à la place d'appeler la fonction request tu appelle appeler qui appellera request toutes les 5 sec si je ne me trompes pas.
je viens de tester avec Internet Explorer, et çà ne marche pas :'(
IE se contente de lancer l'ajax une seule fois au chargement de la page
IE se contente de lancer l'ajax une seule fois au chargement de la page
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne comprends pas très bien comment tu appelle la fonction. onload='appeler()' devrait suffir...Je ne vois pas l'utilité des balises <script> à cet endroit...
Alors en fait le onload c'ets que j'ai oublié de le retirer. Car avec çà ne marche pas du tout .
avec l'appel dans le script çà marche, mais je viens de me rendre compte qu'avec IE çà ne marche pas non plus .
Et je viens de voir aussi que çà ne marche que sur mon serveur local. Sur mon serveur web çà ne marche pas du tout même avec Firefox
avec l'appel dans le script çà marche, mais je viens de me rendre compte qu'avec IE çà ne marche pas non plus .
Et je viens de voir aussi que çà ne marche que sur mon serveur local. Sur mon serveur web çà ne marche pas du tout même avec Firefox
Je met ma fonction ajax pour mieux illustrer:
function request(url,cadre) {
var XHR = null;
if(window.XMLHttpRequest)
XHR = new XMLHttpRequest();
else if(window.ActiveXObject)
XHR = new ActiveXObject("Microsoft.XMLHTTP");
else {
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
XHR.open("GET",url, true);
XHR.onreadystatechange = function attente() {
if(XHR.readyState == 4) {
document.getElementById(cadre).innerHTML = XHR.responseText;
}
}
XHR.send(null);
return;
}