IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Rafraichissement automatique de page et coupures réseau


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Points : 57
    Points
    57
    Par défaut Rafraichissement automatique de page et coupures réseau
    Bonjour à tous,

    Je viens ici vous expliquer une problématique que je n'arrive pas à résoudre... J'ai fait pour mon travail, une page html. Celle-ci est affichée sur des écrans LCD visibles par tout le monde.

    Cette page se rafraichit automatiquement à intervalles réguliers via la ligne suivante :
    <script language="JavaScript">
    setTimeout("window.location='tempsreel.php'",1);
    </script>

    Mais lorsqu'il survient des coupures réseau, le rafraichissement ne se fait pas et l'écran LCD affiche une belle erreur 404 !

    Donc, comment et quel test pourrais-je faire avant de rafraichir la page ? (Ping vers Google ou autre... je ne sais pas trop...)

    Par avance, merci !

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Fais une requête AJAX ; si tu as bien un code réponse 200, affiche le résultat de la requête
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    je ne connais pas le php, mais tu dois pouvoir effectuer une action si ta requête échoue, genre te rediriger sur une page qui affiche "le réseau est totally dead. veuillez nous excuser pour ct incident "

  4. #4
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Citation Envoyé par bigboomshakala Voir le message
    je ne connais pas le php, mais tu dois pouvoir effectuer une action si ta requête échoue, genre te rediriger sur une page qui affiche "le réseau est totally dead. veuillez nous excuser pour ct incident "
    Encore faut il que le serveur réponde pour que du php soit éxécuté... dans le cas de coupures réseau c'est pas évident... Je continue à dire AJAX
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("window.location='tempsreel.php'",1);
    Un rafraichissement toutes les millisecondes... c'est pas un peu exagéré ???
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    Encore faut il que le serveur réponde pour que du php soit éxécuté... dans le cas de coupures réseau c'est pas évident... Je continue à dire AJAX
    Oui pour Ajax, le PHP n'ira pas s'il y a coupure réseau, pas de réponse du serveur en effet !

    Le problème est que je ne vois pas bien comment mettre en œuvre Ajax ici....

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("window.location='tempsreel.php'",1);
    Un rafraichissement toutes les millisecondes... c'est pas un peu exagéré ???
    C'est pour l'exemple, je suis en faite à 60 secondes. (60000 millisecondes)

  8. #8
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 66
    Points : 54
    Points
    54
    Par défaut
    Sinon, sans faire d'ajax (qui malgré tout m'a l'air d'être la meilleure solution), tu peux aussi le faire avec deux iframe, l'une contenant le code de rafraichissement, l'autre la page rafraichie.

  9. #9
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Citation Envoyé par JoN28fr Voir le message
    Le problème est que je ne vois pas bien comment mettre en œuvre Ajax ici....
    Voici un exemple qui utilise le framework prototype. Certains diront que c'est prendre une pelleteuse pour soulever un yaourt mais ca marche très bien.

    Le principe pour simplifier le tout, c'est que ta page principale (celle appellée par le navigateur) ne fais rien directement dans le body. Elle inclue une page refres.php qui dessine le contenu. Par contre elle défini le javascript :
    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
     
    <html>
    <head>
    	<title>test explode</title>
    	<script type="text/javascript" src="prototype.js"></script>
    	<script type="text/javascript">
     
    		Event.observe(window, "load", function() {
                      new Ajax.PeriodicalUpdater( {success:$(document.body)}, 
                                                            "url-de-la-page-inclue.php",
                                                           {frequency: 60});
                    });
     
    	</script>
    </head>
    <body>
    	<!-- Inclusion php de "url-de-la-page-inclue.php" -->
    </body>
    </html>
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    Voici un exemple qui utilise le framework prototype. Certains diront que c'est prendre une pelleteuse pour soulever un yaourt mais ca marche très bien.

    Le principe pour simplifier le tout, c'est que ta page principale (celle appellée par le navigateur) ne fais rien directement dans le body. Elle inclue une page refres.php qui dessine le contenu. Par contre elle défini le javascript :
    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
     
    <html>
    <head>
    	<title>test explode</title>
    	<script type="text/javascript" src="prototype.js"></script>
    	<script type="text/javascript">
     
    		Event.observe(window, "load", function() {
                      new Ajax.PeriodicalUpdater( {success:$(document.body)}, 
                                                            "url-de-la-page-inclue.php",
                                                           {frequency: 60});
                    });
     
    	</script>
    </head>
    <body>
    	<!-- Inclusion php de "url-de-la-page-inclue.php" -->
    </body>
    </html>
    Non, c'est vraiment pas mal ! Je suis entrain de tester et d'adapter à mes besoins, merci !

    Cependant, j'aimerai faire un roulement entre plusieurs pages (exemple page1.php pendant 60 secondes, page2.php pendant 30 secondes, puis retour à la page 1 pendant 60 secondes... et ainsi de suite) mais je ne vois pas trop comment faire non plus.

  11. #11
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Alors je ne pense pas que tu peux continuer à utiliser PeriodicalUpdater, il faut utiliser Updater un peu comme ca (toujours avec prototype.js) :
    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
     
    <script type="text/javascript">
    		var urls = ["URL1", "URL2", "URL3", ...];
    		var refreshDelay = 60;
    		function myRefresh(idx) {
    			new Ajax.Updater({success:$(document.body)}, 
    			urls[idx], {
    				onComplete: function(){
    					myRefresh.delay(refreshDelay, (idx + 1) % urls.length);
    				}
    			});
    		}
     
    		Event.observe(window, "load", function(){
    			myRefresh.delay(refreshDelay, (1) % urls.length);
    		});
    </script>
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

Discussions similaires

  1. Désactiver le rafraichissement automatique des pages web aspx
    Par Espoirwakal dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 26/11/2011, 12h33
  2. [MySQL] Rafraichissement automatique de page
    Par Oxygan dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/05/2007, 14h55
  3. rafraichissement automatique d'une partie d'une page
    Par gloglo dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/06/2006, 11h05
  4. rafraichissement automatique des pages
    Par gloglo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/06/2006, 14h39
  5. [Tableaux] rafraichissement automatique d'une page
    Par Copps dans le forum Langage
    Réponses: 5
    Dernier message: 10/11/2005, 09h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo