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 :

[AJAX] Rafraichir automatiquement des variables cgi dans un fichier htm


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut [AJAX] Rafraichir automatiquement des variables cgi dans un fichier htm
    Bonjour

    J'ai besoin que ma page "index.htm" rafraichisse toutes les 0.5 secondes des données affichées en temps réel .

    Pour cela, index.htm appelle des fichiers CGI qui contiennent des données qui varient.

    L'idée de base est d'utiliser le code Ajax ci-dessous, mais celui ci n'appelle que le fichier status.cgi et je voudrais rafraichir plusieurs ( une douzaine ) de fichiers CGI en meme temps toutes les 0.5 secondes :

    00.cgi , 01.cgi , 02.cgi , ... , 12.cgi

    J'ai fait de nombreux essai, dès que j'essaie d'ajouter des fichiers CGI dans ce code, tout fonctionne mal ...

    Pouvez vous m'aider ?

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
     <script language="JavaScript"> 
           var ObjArray = new Array; 
     
           function GetXmlHttpObject(handler) 
           { 
               var objXmlHttp = null; 
     
               if(navigator.userAgent.indexOf("MSIE")>=0) 
               { 
                   var ClassName = "Msxml2.XMLHTTP"; 
     
                   if(navigator.appVersion.indexOf("MSIE 5.5")>=0) 
                   { 
                       ClassName = "Microsoft.XMLHTTP"; 
                   } 
                   try 
                   { 
                       objXmlHttp = new ActiveXObject(ClassName); 
                       objXmlHttp.onreadystatechange = handler; 
                       return objXmlHttp; 
                   } 
                   catch(e) 
                   { 
                       alert("Error: ActiveX scripting may be disabled."); 
                       return; 
                   } 
               } 
               else 
               { 
                   try 
                   { 
                       objXmlHttp = new XMLHttpRequest(); 
                       objXmlHttp.onreadystatechange = handler; 
                       return objXmlHttp; 
                   } 
                   catch(e) 
                   { 
                       alert("Error: Browser may not be supported or browser security restrictions are too high.  XMLHttpRequest() support is required."); 
                   } 
               } 
           } 
     
           function GetServerFile(FileName, AssignTo) 
           { 
               var NiftyObj = new Object(); 
               NiftyObj.XMLDevice = new GetXmlHttpObject(statechanged); 
               NiftyObj.XMLDevice.open("GET", FileName, true); 
               NiftyObj.XMLDevice.send(null); 
               NiftyObj.Text = AssignTo; 
               ObjArray.push(NiftyObj); 
           } 
     
           function statechanged() 
           { 
               for(i in ObjArray) 
               { 
                   if(ObjArray.XMLDevice.readyState != "4" && ObjArray.XMLDevice.readyState != "complete") 
                       continue; 
     
                   if(ObjArray.Text != "") 
                   { 
                       document.getElementById(ObjArray.Text).innerHTML=ObjArray.XMLDevice.responseText; 
                   } 
                   else 
                   { 
                       alert(ObjArray.XMLDevice.responseText); 
                   } 
     
                   delete ObjArray.XMLDevice; 
                   delete ObjArray.Text; 
                   delete ObjArray; 
               } 
           } 
     
           function Polling() 
           { 
               GetServerFile("Status.cgi", "polling"); 
           } 
     
           function InitPolling() 
           { 
               var pollingtimer = window.setInterval("Polling()", 200); 
           } 
     
       </script>

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonjour,

    Au premier abord, cela semble une très mauvaise idée d'appeler 12 cgi à chaque fois. L'idéal serait de faire un seul Cgi qui va chercher toutes les valeurs à retourner. Ainsi tu auras déjà 12x moins de requêtes Ajax. Ton unique Cgi appelé te renverra la liste des valeurs sous forme XML, ou JSON ou autre.

    Et ton traitement JavaScript n'a plus du tout à gérer la multitude d'appels, il lui suffit de traiter la douzaine de valeurs retournées en une seule fois. Ne serait-ce pas déjà beaucoup plus simple ?

Discussions similaires

  1. Insérer des variables php dans un fichier xml
    Par Aezerium dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 21/02/2011, 11h24
  2. [Débutant] accéder à des variables partagées dans différents fichiers
    Par jane40 dans le forum MATLAB
    Réponses: 16
    Dernier message: 24/04/2009, 15h17
  3. [PHP-JS] comment recupérer des variables javascript dans un fichier php
    Par domino_dj dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/02/2007, 11h46
  4. portée des variables globales dans un fichier js
    Par crakazoid dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2006, 16h49
  5. Réponses: 12
    Dernier message: 27/01/2006, 11h07

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