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] Temporisation requete AJAX


Sujet :

JavaScript

  1. #1
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut [AJAX] Temporisation requete AJAX
    Bonjour,

    J'ai fais un moteur de recherche en AJAX, vous pouvez le voir ici:
    http://bbjess.free.fr/bd/reqa.php
    Et en faite j'aimerais temporiser l'envoi des requêtes a la page PHP:
    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
    function rechville() {
    	var xhr = getXhr();
    	xhr.onreadystatechange = function() {
    		if(xhr.readyState == 4 && xhr.status == 200) {
    			var reponse = xhr.responseText;
    			document.getElementById("rep").innerHTML = reponse;
    			document.getElementById("ville").style.border = '#00CC00 solid 2px';
    		}
    		else
    			document.getElementById("rep").innerHTML = '<img src="spin.gif" alt="" />';
    	}
    var data = "ville=" + escape(document.getElementById("ville").value);
    xhr.open("POST","rep.php",true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
    xhr.send(data);
    }
    Pour soulager la BDD.
    Mais je ne voit pas comment faire.
    Merci pour vos idées
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    si tu le fais à ce niveau là, tu ne fais que décaller le pb (y aura empilement de requêtes en attente).
    Il vaut mieux le faire au niveau de l'appel rechville(), en le signalant à l'utilisateur, pour empêcher qu'elle ne soit ré-appeler avant le délai souhaité.

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Et comment faire une tempo avant d'appeler rechville()?
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  4. #4
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    A chaque appel tu stockes l'heure dans une variable globale.
    Lors d'un appel, tu vérifie le temps écoulé depuis l'heure stockée.
    Si le délai est écoulé, tu stockes la nouvelle heure, puis tu lances la fonction.
    Sinon, tu ne stockes pas l'heure, et tu affiches le message disant de retenter + tard ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Eu oui mais pour le moment l'appel est fait a chaque appui sur une touche. Mais je ne veut pas bloquer l'utilisateur en lui disant de revenir plus tard :S
    Je veut juste temporiser mon appel pour pas que pendant qu'on tape un mot les requête se suivent sans arrêt.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  6. #6
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cerede2000
    Eu oui mais pour le moment l'appel est fait a chaque appui sur une touche. Mais je ne veut pas bloquer l'utilisateur en lui disant de revenir plus tard :S
    Hum ... j'avais pas vu le lien

    Mais tu peux faire pareil sans le message.

    ... et puis une tempo ça peut être 1 ou 2 secondes, pas forcément 1/2 heure
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 458
    Points
    458
    Par défaut
    j'ai fais un petit système de temporisation pour le site sur lequel je bosse. ça fonctionne comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	var TEMPORISATION = 1000; // Delai de mise en cache en millisecondes
    	var idTimeout = 0; // Identifiant permettant de récupérer l'indice du setTimeout
     
    	/** Fonction de temporisation.
     La fonction rechVille n'est appelée qu'au bout d'un certain laps de temps (TEMPORISATION).
    	A chaque fois que l'on frappe une touche, cette fonction est appelée. 
    	Dès lors, la requête précédente est annulée et mise à jour avec la nouvelle requête.
    	De ce fait, on évite de surcharger le serveur avec un flot de requêtes continues.
    	**/
    	function TemporiseDemande()
    	{
    			if (idTimeout>0){clearTimeout(idTimeout);} 
    			idTimeout = setTimeout(rechville,DELAIMISEENCACHE);		
    	}

    A toi de voir si ça peut te convenir...
    Tant va la cruche à l'eau qu'à la fin y'a plus d'eau.

Discussions similaires

  1. [AJAX] Requete Ajax : accents
    Par Romalafrite dans le forum AJAX
    Réponses: 2
    Dernier message: 11/05/2009, 11h35
  2. [AJAX] [IE] Requete Ajax en cours et changement de page
    Par ..:: Atchoum ::.. dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/10/2007, 12h30
  3. [AJAX] deux requetes ajax dans une même page
    Par mitmit dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/05/2007, 12h52
  4. champs qui s'efface lors d'une requete ajax.
    Par starr dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2006, 08h33
  5. activer mod_proxy pour les requetes ajax
    Par xtaze dans le forum Apache
    Réponses: 1
    Dernier message: 17/05/2006, 17h45

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