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)
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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 ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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 ?
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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 ?
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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 ?
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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 ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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 ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
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