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] Pb avec mutli requete synchrone (FF)


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Inscrit en
    Janvier 2007
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Par d�faut [AJAX] Pb avec mutli requete synchrone (FF)
    Bonsoir,

    J'ai un petit probl�me avec des requetes synchrone. Je met a jour successivement le contenu de different <div> par l'intermediaire de requete synchrone. Sur Opera et IE7 ca marche sans soucis tandis que FireFox ne marche pas. Je vous montre le code pour y voir plus clair. Je cr�er un objet JS qui va me permettre de dialoguer avec le server et je demande juste au server de me print le contenu que je lui demande.

    Code 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
    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
     
    var AjaxEngine =  {
     
        Request : getXHR(),
        Host : "include/sEngine.php",
        Method : "POST",
        Async : false
    }
     
    AjaxEngine.Send = function(Container,
                               Content) {
     
     
        AjaxEngine.Request.onreadystatechange = function() {
     
            if(AjaxEngine.Request.readyState == 4 && AjaxEngine.Request.status == 200) {
     
                GetElementById(Container).innerHTML = AjaxEngine.Request.responseText;
                AjaxEngine.Request.abort();                              
        	}
        }
     
        AjaxEngine.Request.open(AjaxEngine.Method, AjaxEngine.Host, AjaxEngine.Async);
    	AjaxEngine.Request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1;");
        AjaxEngine.Request.send("content=" + Content);
    }
     
     
    function getXHR() {
     
        if(window.XMLHttpRequest && !(window.ActiveXObject)) {
     
            try {
                return new XMLHttpRequest();
            } catch(e) {
                return false;
            }
        }
        else if(window.ActiveXObject) {
     
            try {
                return new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
     
                try {
                    return new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                    return false;
                }
            }
        }
        else {
            alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
            return false;
    	}
    }
    Code PHP
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
     
        header('Content-Type: text/html; charset=iso-8859-1');
     
        $contentDir = $_POST['content'];
              
        include("actions/".$contentDir.".php");
        
    ?>
    Appel pour Update les <div> (dans le body)

    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
     
            <div id="menu">
     
                <script type="text/javascript">
     
                    AjaxEngine.Send('menu','menu/menuGames');
     
                </script>
     
            </div>
     
            <div id="content">
     
                <script type="text/javascript">
     
                    AjaxEngine.Send('content','content/accueil');
     
                </script>
     
            </div>
    Sous Firefox je ne rentre jamais dans le onreadystatechange.

    Merci de votre aide.

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Par d�faut
    Je suis pas sur que �a va r�soudre ton probl�me mais je me souviens vaguement d'un truc...

    En gros sous FF quand tu es en mode synchrone, dans mes souvenirs, onreadystatechange est pas appel�e.

    Essais de faire un truc de ce style (sans t'occuper du onreadystatechange):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    // ...
     
    AjaxEngine.Request.send("content=" + Content);
     
    if(AjaxEngine.Request.readyState == 4 && AjaxEngine.Request.status == 200) {
     
    // ...
     
    }
    Je te promets rien ! :o

Discussions similaires

  1. [AJAX] Modal popup avec contenu requete ajax et PHP !
    Par legall dans le forum jQuery
    R�ponses: 14
    Dernier message: 14/11/2013, 16h12
  2. [AJAX] Requete Ajax
    Par aztec dans le forum AJAX
    R�ponses: 0
    Dernier message: 16/10/2010, 17h00
  3. [AJAX] AJAX : mutli requete
    Par Emcy dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 19/04/2007, 10h38
  4. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    R�ponses: 5
    Dernier message: 04/06/2004, 13h26
  5. problemes de performances avec les requetes select
    Par berry dans le forum Requ�tes
    R�ponses: 3
    Dernier message: 10/07/2003, 13h39

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