[ajax] Empêcher l'arrivée de données plus anciennes
5 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
[ajax] Empêcher l'arrivée de données plus anciennes
Salut à tous,
Je rencontre un problème mineur mais pénible. J'ai un formulaire de recherche qui fonctionne via ajax sur un onkeyup, un peu à la manière de googleSuggest : les résultats sont rafraichis à chaque fois qu'un caractère est rentré.
Le problème est le suivant : il arrive que les résultats provenant d'une chaine plus ancienne écrasent ceux provenants d'une chaine plus récente.
Comment faire pour annuler une requête ajax "en cours" si une autre a été envoyée ?
Merci
Je rencontre un problème mineur mais pénible. J'ai un formulaire de recherche qui fonctionne via ajax sur un onkeyup, un peu à la manière de googleSuggest : les résultats sont rafraichis à chaque fois qu'un caractère est rentré.
Le problème est le suivant : il arrive que les résultats provenant d'une chaine plus ancienne écrasent ceux provenants d'une chaine plus récente.
Comment faire pour annuler une requête ajax "en cours" si une autre a été envoyée ?
Merci
-

UsagiYojimbo - WRInaute accro

- Messages: 5200
- Inscription: Mer Nov 23, 2005 10:38
Je ne suis pas sûr de comprendre. En général ce type d'implémentation fonctionne justement comme cela : au fur et à mesure que tu saisis des caractères à partir du seuil minimum que tu t'es fixé, la liste déroulée ce met à jour de manière à coller au plus près de la demande de l'internaute.
Tu es parti du script livesearch ou d'une solution perso ?
Tu es parti du script livesearch ou d'une solution perso ?
je suis parti d'une solution perso.
Au fur et à mesure que l'internaute tape, la liste se rafraichit effectivement, sauf que les rafraichissements n'arrivent visiblement pas dans l'ordre, et des anciens écrasent les nouveaux.
Ex: je m'attends a voir ça :
p > 10000 résultats
pa > 1000 résultats
par > 100 résultats
pari > 10 résultats
paris > 1 résultats
alors que si je tape très vite "paris", les requêtes partent presque toutes en même temps, et vu quelles ne mettent pas toutes le même temps à être exécutées, elles n'arrivent pas dans l'ordre
et j'ai un résultat du type :
paris > 1000 résultats (qui correspond en fait à la réponse de la requête "pa", mais comme elle est arrivée en dernier elle a écrasé les réponses aux requêtes "par", pari", "paris")
Compris le binz ?
Au fur et à mesure que l'internaute tape, la liste se rafraichit effectivement, sauf que les rafraichissements n'arrivent visiblement pas dans l'ordre, et des anciens écrasent les nouveaux.
Ex: je m'attends a voir ça :
p > 10000 résultats
pa > 1000 résultats
par > 100 résultats
pari > 10 résultats
paris > 1 résultats
alors que si je tape très vite "paris", les requêtes partent presque toutes en même temps, et vu quelles ne mettent pas toutes le même temps à être exécutées, elles n'arrivent pas dans l'ordre
paris > 1000 résultats (qui correspond en fait à la réponse de la requête "pa", mais comme elle est arrivée en dernier elle a écrasé les réponses aux requêtes "par", pari", "paris")
Compris le binz ?
Bonjour,
Tu pourrais peut-être envoyer une variable time avec ajax, quand tu génère tes résultats tu la met dans un input type hidden, après en javascript il est simple de vérifier si le résultat reçu doit être affiché ou pas en comparant les temps.
Tu pourrais peut-être envoyer une variable time avec ajax, quand tu génère tes résultats tu la met dans un input type hidden, après en javascript il est simple de vérifier si le résultat reçu doit être affiché ou pas en comparant les temps.
Merci, ce pourrait effectivement être une solution.
En fait je fais une sélection des villes de France a partir de la 3ème lettre tapée, et parfois les réponses retournées étaient très longues (plus de 5000 résultats), j'ai contourné le problème en faisant un LIMIT 0,50 dans ma SQL_QUERY, le bug ne se produit plus et c'est plus rapide. C'était stupide de retourner trop de résultats.
En surfant un peu j'ai aussi vu qu'il y avait une fonction xhr.abort() qui pourrait être LA solution, mais je ne sais pas trop comment l'utiliser.
En fait je fais une sélection des villes de France a partir de la 3ème lettre tapée, et parfois les réponses retournées étaient très longues (plus de 5000 résultats), j'ai contourné le problème en faisant un LIMIT 0,50 dans ma SQL_QUERY, le bug ne se produit plus et c'est plus rapide. C'était stupide de retourner trop de résultats.
En surfant un peu j'ai aussi vu qu'il y avait une fonction xhr.abort() qui pourrait être LA solution, mais je ne sais pas trop comment l'utiliser.
5 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Référencement et Web 2.0
- Affichage de la description DMOZ dans Yahoo
- Comment éviter de se faire voler son nom de domaine...
- Google Web Toolkit, pour créer des applications en AJAX
- Yahoo Maps API
- Google rejoint le projet Open AJAX créé par IBM
- Fin de l'API Google Search SOAP
- Définition(s) du Web 2.0
- Google ferme l'API SOAP aux nouveaux développeurs
- Optimisation du référencement d'un site en AJAX
- arrivee de nouveaux messages avec signal sonore sur le forum
- arrivée en 1e page avec "knoppix": non présent sur
- Arrivée sur Google Fr de l'interface de Google US !
- rapport Adsense Données d'ensemble / Données à analyser
- Adsense : Données d'ensemble et Données à analyser
- importation de données dans base de données
- Données d'ensemble // Données à analyser
- Anciennes pages
- Adresses mails anciennes
- Redirection anciennes pages ?!
- Google et anciennes url
- Anciennes versions explorer
- recherche anciennes clés api google
- anciennes urls - redirections 301
- Comment supprimmer les anciennes url ??
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit
- Test data centers Google
Cet outil vous permet d'afficher sur une seule page les résultats Google effectués sur de nombreux data centers (centres de données).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

le forum