begin process at 2012 05 29 13:28:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Patienter pendant une requete Ajax


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Patienter pendant une requete Ajax

lundi 27 novembre 2006 à 11:59:44 | Patienter pendant une requete Ajax

deterred

Bonjour,

J'ai une grosse requete Ajax a executer, et le chargement est long.
Je voudrais mettre à la place de mon compteur de résultat un message du genre "chargement en cours"

Voici comment je m'y prend, et ça ne fonctionne pas :

function rafraichirResultats() {
    document.getElementById("nbFormations").innerHTML = "Chargement en cours ... ";
    var nbRes = getResponseURL("GET", "requetesAjax.asp","action=getNbForm");
    sessionRecherchePerdue(nbRes);
    document.getElementById("nbFormations").innerHTML = nbRes;
}

Avez vous une idée ???

J'ai essayé de mettre un "document.recalc();" a la deuxieme ligne (avant de lancer l'ajax), mais ça ne donne rien sous IE, et plante sous FF ...
Si quelqu'un peut m'aider, ça sera super sympa !

lundi 27 novembre 2006 à 14:46:10 | Re : Patienter pendant une requete Ajax

roro06



Bonjour

'Faudrait en montrer un peu plus, car il est impossible de savoir ce que font getResponseURL, ni
sessionRecherchePerdue();

Cordialement
Roro webDev
lundi 27 novembre 2006 à 14:55:03 | Re : Patienter pendant une requete Ajax

deterred

en fait là n'est pas la question, sessionRecherchePerdue(); ne fait que verifier si la session est perdue ou non (et abandonne l'ajax si c'est le cas), getResponseURL lance une requete ajax et recupere le resultat.
Tout ça fonctionne tres bien, mon seul souci serait de faire patienter le visiteur pendant l'execution de la fonction ...
lundi 27 novembre 2006 à 15:08:25 | Re : Patienter pendant une requete Ajax

roro06



Bonjour

C'est bien pour ça que je te pose la question, parceque moi je le fais et ça fonctionne

Cordialement
Roro webDev
lundi 27 novembre 2006 à 16:28:25 | Re : Patienter pendant une requete Ajax

deterred

aie ! ok ... c'est une piste ...

quand je retire mon sessionRecherchePerdue(); c'est idem ...

voici mon getResponseURL(); :

function getResponseURL(method, strUrl, strData) {
    var xhr_object;
   
    var retour = "";

    if(window.XMLHttpRequest) // Firefox  
        xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer 
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP");  
    else { // XMLHttpRequest non supporté par le navigateur  
        alert("Erreur : Votre navigateur ne supporte pas les objets XMLHTTPRequest");
        return;
    }
     
    if (method != "POST") {
        strUrl = strUrl + "?" + strData;
    }

    xhr_object.open(method, strUrl, false);
       
    xhr_object.send(strData);
   
    retour = xhr_object.responseText;   
   
    return retour;
}


--------

le souci en fait est que le navigateur se fout completement de la premiere ligne : " document.getElementById("nbFormations").innerHTML = "Chargement en cours ... ";" et execute directement ma requete ajax. Le navigateur devient donc figé pendant 3 secondes, le temps de chargement de mon compteur.
Attention pour bien se rendre compte de mon souci, il faut une requete ajax LOURDE . Pour moi c'est une requete Oracle avec 18 tables jointes et des conditions assez complexes, en particulier incluant une recherche avec synthétiseur sur un champs "mot clés".... Si la requete ajax est rapide, effectivement, on a l'impression que ça fonctionne...
lundi 27 novembre 2006 à 16:51:31 | Re : Patienter pendant une requete Ajax

roro06



Bonjour

xhr_object.open(method, strUrl, false);
xhr_object.send(strData);
retour = xhr_object.responseText;   
   

Je suis un peu surpris que ça fonctionne comme ça ! surtout avec autre chose que ie (3 °paramètre de open à false ?).Passons .
Ensuite tu envoie ta requête puis tu affecte ton résultat à retour sans sovoir si la réponse est parvenue (bon d'accord, tu fait du synchrone, mais il n'y a que IE qui accepte çà). Donc "rien sous IE" --> je veux bien, mais que "ça plante FF", çà, ça ne m'etonne pas.

faire plutôt plus "classique" :

...
        xhr.onreadystatechange=function()
            {
            if (xhr.readyState == 4) // 4=httpComplete
                {
                if (xhr.status == 200) // 200 : code Http : OK
                    {
                    // Traitement de la réponse
                    retour=xho.responseText;
                    }
                }
            }
...
xhr_object.open(method, strUrl, true);
xhr_object.send(strData);

Cordialement
Roro webDev
lundi 27 novembre 2006 à 16:56:10 | Re : Patienter pendant une requete Ajax

deterred

ok j'ai du mal m'expliquer

MON AJAX FONCTIONNE TRES BIEN, je vous remercie ... le probleme n'est pas là, si vous ne savez pas me dépanner, inutile de répondre des absurdités, ou des hors sujet.


le pb est la fonction javascript : document.recalc(); qui ne donne rien sous IE et plante sous FF (c'est normal je l'ai lu)

Ma question est donc comment palier à ce pb, afin d'afficher un message pendant le chargement de mon ajax ! (cf mon premier post)
lundi 27 novembre 2006 à 17:01:49 | Re : Patienter pendant une requete Ajax

roro06



Bonjour

Allez rendre service, je vous jure ...

Pour l'info, moi, je sais faire afficher "Chargement en cours...", et j'ai appris à le faire sans insulter les autres ! et ça marche sur tous les navigateurs. Bon debuggage quand-même.

pas cordialement
Roro webDev
lundi 27 novembre 2006 à 17:08:08 | Re : Patienter pendant une requete Ajax

deterred

je n'ai insulté personne o_O, j'ai même remercié.
juste que le pb est toujours le meme sur ces forums, les intervenants ne solutionnent rien, et remettent en cause du code qui fonctionne.
j'ai posé une question on me répond 3 fois a coté, ça a tendance à m'énerver ... that's all, sans rancune, comme d'hab je vais me débrouiller, j'esperais juste gagner un peu de temps
lundi 27 novembre 2006 à 17:15:28 | Re : Patienter pendant une requete Ajax

deterred




au fait, je suis pas aussi mal élevé que tu le dis, avant de répondre, j'ai pris le temps d'examiner ton code et de remplacer ma fonction getResponseURL par ta version "plus standard".
ça fonctionne tout aussi bien, mon compteur est bien actualisé seulement au lieu de faire les etapes comme je le voudrais :

- changement du label en "chargement en cours"
- chargement de la requete ajax (environ 4 sec)
- affichage du compteur dans le label


j'obtiens l'enchainement suivant :

- chargement de la requete ajax (environ 4 sec)
- changement du label en "chargement en cours"
- affichage du compteur dans le label


it sucks

1 2

Cette discussion est classée dans : chargement, requete, document, ajax, nbres


Répondre à ce message

Sujets en rapport avec ce message

Pop up de chargement [ par nico1214 ] Dans l'Intranet que je développe, il y a de nombreux liens qui ouvrent des documents, en particulier PDF et Word.L'ouverture des documents se fait tou requete sql [ par 27 ] salut,est-il possible d'exécuter une requete mySql dans un script avec un petit exemple svp.Comme ceci par exemple : function majChamp(){              Insertion d'une valeur dans requete mysql/php [ par houloul1 ] Bonjour et merci de lire ce messagej'ai un petit problème avec la récupération d'un champ avec javascript.Mon problème se situe au niveau la ligne $sq premier script avec javascript... [ par ehmarc ] salutvoila alors mon script récupère la valeur dans une liste déroulante et doit envoyer cette valeur dans la partie en php pour effectuer la requete Chargement d'un constructeur à partir d'une variable [ par kbalevil ] Voici mon soucis :Je charge un élément via ajax, jusque là tout va bien, et ensuite je dois initialiser ce composant (placement, valeures de départ), secours svp problem javascript -> ajax [ par barcawi ] bonjour,j'execute une requette Ajax à l'aide d'u chargement d'image [ par Paladin2107 ] Bonjour à tousJ'ai un petit soucis pour afficher une image dynamiquement. Lorsque un utilisateur choisi son image à l'aide d'un bouton parcourrir je s Recuperer des valeurs d'un formulaire pour creer une requete mysql [ par Ze_lola ] Bonjour a tous! Alors voila j'ai un petit problème concernant ajax:il faut que je recupere des valeurs d'un formulaire et que je les réincjecte dans u Chargement de pages - Ajax - Probleme avec ie [ par taxidogkiller ] Bonjour, je suis débutantJ'ai créer un script de chargement de page à partir de script existant, mais celui ci ne fonctionne pas.je me suis servi des Interpréter code javascript après chargement AJAX [ par VoLc0m ] Bonjour,J'utilise l'objet XmlHTTPRequest (AJAX) pour charger une page web dans le contenu d'un div. La page chargée dans le div contient du code javas


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales