bonjour,
comment fait-on pour lancer une fonction JS toutes les dix secondes ?
bonjour,
comment fait-on pour lancer une fonction JS toutes les dix secondes ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part setInterval(function(){tafonction()},10000)
merci,
je l'ecrits où cette ligne de commande (comment faire pour qu'a l'ouverture de ma page la fonction soit lancée ?) ?
ça tourne en boucle ou ça ne le fait qu'une fois ?
c'est un setInterval, et c'était la question dons ça boucle
Code : Sélectionner tout - Visualiser dans une fenêtre à part <body onload="setInterval(function(){tafonction()},10000)">
c'est le setTimeout qui n'execute la fonction qu'une seule fois ...
merci mais ça ne marche pas encore
donc voici mon code : c'est une page qui doit se rafraichir toutes les 5s en allant chercher des variables dans un fichier .json
fichier html:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="RecupereVariables.js"></script> </head> <body onload="setInterval(function(){makeRequest(url)},5000)"> <noscript> La page ne peut pas être affichée correctement car Javascript n'est pas activé</noscript> <span style="cursor: pointer; text-decoration: underline;" onclick="makeRequest('./data.json')"> Lancer la requete </span> <p>Ma Variable 1 : <span id="mot1">Valeur 1</span></p> <p>Ma Variable 2 : <span id="mot2">Valeur 2</span></p> </body> </html>
fichier .json :
fichier .js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var JSONvariables = { "variable1_json": "toto", "variable2_json": "tata" }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 var http_request = false; function makeRequest(url) { http_request = false; http_request = new XMLHttpRequest(); if (!http_request) { alert('Impossible de créer un objet XMLHTTP'); return false; } http_request.onreadystatechange = request_execute; http_request.open('GET', url, true); http_request.send(null); } function request_execute() { if (http_request.readyState == 4) { if (http_request.status == 200) { eval(http_request.responseText); document.getElementById('mot1').innerHTML = JSONvariables.variable1_json; document.getElementById('mot2').innerHTML = maVariable.variable2_json; } else { alert('Il y a un problème avec la requète XMLHTTP'); } } }
quel est le message d'erreur ?
j'en ai pas..
le rafraichissement marche si je clique sur "Lancer la requete" : a priori il y a un probleme sur la fonction d'appel toutes les 5s
tu n'aurais pas un souci avec la requete non terminée avant d'en lancer une autre ?
je ne pense pas car j'ai mis des alert('execution OK'); au debut de mes deux finctions, et ça ne s'execute jamais....
et si dans le onload tu mets un alert de url ... il te dit quoi ?
si je mets alert(url);, il n'y a rien qui se passe par contre si je mets alert('toto');, ça s'affiche.
si je mets alert(url); dans la premiere ligne de la fonction makeRequest et que je charge la page, rien ne se passe. par contre si je clique sur "Lancer la requete", j'ai bien l'url du fichier .json qui s'affiche
essaye de mettre un setTimeout sur le lancement de la fonction dasn le onload ...
je suis trop bete, la variable url n'avait pas de valeur
=> il suffisait de faire :
par contre, que se passe t-il si la connection est coupée puis rétablie ? ça va lancé d'un coup toutes les requetes qui n'ont pas été effectuées pendant le temps de la coupure ou est-ce que ça va en executer qu'une ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <body onload="setInterval(function(){makeRequest('./data.json')},5000)">
je voudrais afficher dans ma page Web un champs connecté/deconnecté : comment dois-je faire ?
j'ai essayé de deconnceter/reconnecter mon cable reseau => l'appli n'arrive pas à reprendre la main...
pas de reponse ? dois-je en conclure que c'est impossible ?Envoyé par Emcy
tu veux dire connecté ajax ?
lance dasn un setInterval un test sur le readystatus ...
je veux savoir si mon fichier json (là où est effectué la requete) est accessible.
Peux tu me donner la ligne de commande complete (c'est un peu vague) ?
Pour l'instant j'utlise cette methode (en attendant de voir si la tienne est meilleur) :
j'utilise les variables num_connection et num_connectionbefore pour connaitre l'etat de la connection
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 var http_request = false; var num_refresh1 = 0; var num_refresh2 = 0; var num_connection = 1; var num_connectionbefore = 0; //setInterval(function(){tafonction()},2000); function fonction_start(){ var fichier_json = './data.json'; makeRequest(fichier_json); setInterval(function(){makeRequest(fichier_json)},5000); // boucle toutes les 5s } function makeRequest(url) { http_request = false; num_refresh1++; document.getElementById('refresh1').innerHTML = num_refresh1; // detection de connection if (num_connectionbefore == num_connection){ document.getElementById('ComStatus').innerHTML = 'OFF'; } else { document.getElementById('ComStatus').innerHTML = 'ON'; } num_connectionbefore = num_connection; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType){ http_request.overrideMimeType('text/plain'); } // IE } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Impossible de créer un objet XMLHTTP 1'); return false; } http_request.onreadystatechange = request_execute; http_request.open('GET', url, true); http_request.send(null); } function request_execute() { //alert('execution de la fonction'); if (http_request.readyState == 4) { if (http_request.status == 200) { eval(http_request.responseText); num_refresh2++; // addition num_refresh = num_refresh + 1 num_connection++; document.getElementById('refresh2').innerHTML = num_refresh2; document.getElementById('SerialNumber').innerHTML = JSONvariables.SerialNumber; } else { document.getElementById('ComStatus').innerHTML = 'OFF'; } } }
=> ça marche très bien sous firefox mais sous IE ça ne marche pas correctement : les variables num_refresh1 et num_refresh2 sont bien mise à jour mais mes variables qui sont dans le fichier json ne sont pas rafraichie. De +, si je coupe le cable, ma connection est toujour detectée comme ON et num_refresh1 est toujour egal a num_refresh2 (????)
tu l'utilises déja le ready state ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (http_request.readyState == 4) {
renseigne toi sur les différentes valeurs possible ... (dasn le tuto de siddh par exemple )
teste ensuite sa valeur
et pour le le probleme sous IE (6 et 7) : pas de solution ?
j'ai vu que le text est écrit soit entre '' soit entre "" : dans quel cas faut-il utiliser l'un ou l'autre ?
ex 'toto' ou "toto" ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager