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] setInterval ne marche pas


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 54
    Points : 44
    Points
    44
    Par défaut [AJAX] setInterval ne marche pas
    Bonjour,

    je suis débutant en AJAX, et je cherche à faire communiquer une JSP (associée à une portlet) et une Servlet periodiquement. Pour cela j'utilise la fonction setInterval de JAvascript dans ma JSP, voici mon code :

    ...
    <script type="text/javascript">
    var req = <portlet:namespace/>getXMLReq();

    function <portlet:namespace/>getXMLReq(){
    var objXMLHttp=null
    if (window.XMLHttpRequest){
    objXMLHttp=new XMLHttpRequest()}
    else if (window.ActiveXObject){
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")}
    return objXMLHttp
    }
    function <portlet:namespace/>_StartPoll(){
    req = <portlet:namespace/>getXMLReq();
    var url = "<%= request.getContextPath() %>/NGH2Servlet";
    req.onreadystatechange = function(){<portlet:namespace/>_processPollReq();};
    req.open("GET", url, true);
    req.send("ajax=true");
    }
    function <portlet:namespace/>_processPollReq(){

    if (req.readystate == 4 || window.XMLHttpRequest){
    if (req.status == 200){
    alert("status = 200 ");
    var diags = req.responseXML.getElementsByTagName("diag");
    alert(diags[1].firstChild.nodeValue);
    }
    }
    }
    setInterval("<portlet:namespace/>_StartPoll();",5000);
    </script>

    ...

    Malheureusement, j'ai l'impression que la fonction setInterval n'est jamais lancée, puisque ma servlet jamais invoquée, et pas de trace... Sinon la JSP marche bien puisque l'affichage qu'elle produit est correct.


    J'ai utilisé ce même bout de code AJAX ds un autre cas de figure, ou il marchait tres bien...

    Selon vous, d'ou pourrait venir le probleme?

    Merci de votre aide.

    Motorenshi.

  2. #2
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Salux,

    Je pense qu'en regardant le code js généré on y verrait plus clair

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 54
    Points : 44
    Points
    44
    Par défaut
    J'obtiens l'erreur suivante ds la console d'erreur de mon browser :

    Erreur: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost:9081/wps/myportal/!ut/p/.scr/LoggedIn :: PC_7_0_74P__processPollReq :: line 586" data: no]
    Fichier source: http://localhost:9081/wps/myportal/!ut/p/.scr/LoggedIn
    Ligne: 586

    Voici le jsp généré correspondant : (la ligne 586 est mentionnée)


    <script type="text/javascript">
    var req = PC_7_0_74P_getXMLReq();


    function PC_7_0_74P_getXMLReq(){
    var objXMLHttp=null
    if (window.XMLHttpRequest){
    objXMLHttp=new XMLHttpRequest()}
    else if (window.ActiveXObject){
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")}
    return objXMLHttp
    }
    function PC_7_0_74P__StartPoll(){
    req = PC_7_0_74P_getXMLReq();
    var url = "/NGH2/TestServlet";
    req.onreadystatechange = function(){PC_7_0_74P__processPollReq();};
    req.open("GET", url, true);
    req.send("ajax=true");
    }
    function PC_7_0_74P__processPollReq(){
    ************ LIGNE 586 ***************
    if (req.readystate == 4 || window.XMLHttpRequest){
    if (req.status == 200){
    alert("status = 200 ");
    var diags = req.responseXML.getElementsByTagName("diag");
    alert(diags[3].firstChild.nodeValue);
    }
    }
    }
    setInterval("PC_7_0_74P__StartPoll();",5000);
    </script>


    Merci de votre aide.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 54
    Points : 44
    Points
    44
    Par défaut
    J'ai trouvé mon erreur, il s'agissait juste d'un problème d'url...

    Merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/05/2009, 02h12
  2. [AJAX] Ajax ne marche pas sous IE pour MAC
    Par sami_c dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 26/06/2007, 14h52
  3. [AJAX] responseText marche et responseXML ne marche pas
    Par peck dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/04/2007, 17h02
  4. [AJAX] Ajax et XmlHttpRequest (marche pas sous IE)
    Par krovomi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2007, 16h39
  5. [AJAX] @localhost ça marche mais pas @IP
    Par JauB dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/02/2007, 21h32

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