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

AJAX Discussion :

[AJAX] lire en permenance l'etat d'un module


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut [AJAX] lire en permenance l'etat d'un module
    Bonjour,

    J'utilise AJAX pour récupérer l'etat d'un appareil branché sur le réseau : donc je lance une requête AJAX au départ et dès que je reçois ma requete, j'en renvoie une (avec un timeout de 1 secondes pour ne pas rafaichir tout de suite).

    Lorsque le module est déconnecté => vu qu'il n'y a plus de réponse, le processus est arrêté
    => comment faire pour détecter si le module s'est reconnecté (car mon processus ne repart pas automatiquement) ? peut-on définir l'intervalle de temps à partir duquel le module doit être considéré comme déconnecté ?



    merci d'avance,

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par boboss123 Voir le message
    peut-on définir l'intervalle de temps à partir duquel le module doit être considéré comme déconnecté ?
    je pense que c'est à toi de le faire : utilise une variable dans laquelle tu stockes l'heure de dernier rafraichissement.
    Puis avec un setInterval() à une fréquence plus élevée (style 1 minute), si l'écart est trop grand (disons > 30 secondes) tu peux considérer qu'il est déconnecté.
    Mais à toi de choisir des intervalles de temps adaptés à ton contexte ...

    A+

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    donc c'est comme ça qu'il faut faire ?

    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
    var Req
    var ObjSetTimeout, ObjSetTimeout2
    var JSONvar
    var state = "deconnecté"
     
     
    function ajaxWatch(){
     
    	if(Req.readyState == 4 && Req.status == 200) {
     
    		// => désactiver l'interruption sur CheckDisconnect ???
     
    		state = "connecté"
     
    		eval(Req.responseText)
    		JSONvar = JSONtmp
    		majAJAX() // traitement de JSONvar
     
    		ObjSetTimeout = setTimeout(function(){makeReq()},1*1000) // rafraichissement toutes les 1 secondes
    	}
     
    }
     
    function makeReq(){
     
    	if(window.XMLHttpRequest){
    	    Req = new XMLHttpRequest()
    		Req.onreadystatechange = ajaxWatch
    	    Req.open("GET", "tutu.json", true)
     
    		ObjSetTimeout2 = setTimeout(function(){CheckDisconnect()},2*1000) // rafraichissement toutes les 2 secondes
    	    Req.send(null)
     
     
    	} else if(window.ActiveXObject){
    		try {
    			Req = new ActiveXObject("Msxml2.XMLHTTP")
    		} catch (e) {
    			Req = new ActiveXObject("Microsoft.XMLHTTP")
    		}
     
    		if(Req) {
    	        Req.onreadystatechange = ajaxWatch
    			Req.open("GET", "tutu.json", true)
     
    			ObjSetTimeout2 = setTimeout(function(){CheckDisconnect()},2*1000) // rafraichissement toutes les 2 secondes
    			Req.send(null)
    	    }
     
    	} else {
    		alert("Votre Navigateur Internet ne supporte pas AJAX")
    	}
     
    }
     
     
    function CheckDisconnect(){
    	Req.Abord()
    	state = "déconnecté"
     
    	// Tentative de reconnexion
    	ObjSetTimeout = setTimeout(function(){makeReq()},1*1000) // rafraichissement toutes les 1 secondes
    }
    => par contre CheckDisconnect() va s'executer même s'il n'y a pas d'erreur ? peut-on le desactivé si la requête a été reçue ?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    => par contre CheckDisconnect() va s'executer même s'il n'y a pas d'erreur ? peut-on le desactivé si la requête a été reçue ?
    Il suffit de faire un du bon ObjSetTimeout lors de la réception de la réponse.

    A+

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Lire le contenu de xhr
    Par Delack dans le forum AJAX
    Réponses: 23
    Dernier message: 09/02/2010, 14h59
  2. [AJAX] Lire un input en JavaScript
    Par Philippe PONS dans le forum AJAX
    Réponses: 2
    Dernier message: 20/06/2009, 08h23
  3. [AJAX] Lire un fichier depuis une URL?
    Par PlaTyPuSs dans le forum AJAX
    Réponses: 6
    Dernier message: 01/06/2009, 13h28
  4. [AJAX] Lire fichier XML
    Par Maryy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/08/2007, 22h49
  5. [AJAX] lire ficher txt avec ajax
    Par lavm01 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/11/2006, 23h23

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