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

AJAX Discussion :

[AJAX] Ajax et plantage/saturation


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut [AJAX] Ajax et plantage/saturation
    Bonjour à tous,

    J'utilise une fonction ajax toute simple pour mettre à jour un div se trouvant dans une "lightbox".
    Le contenu raffraichi présente un lien permettant de remettre à jour ce même div. Le problème c'est que si il y a des clics successifs et rapides sur ce lien au bout d'un moment on dirait que le script sature et ça plante, j'entend par la que le div ne se met plus a jour et ma lightbox est vide (height 0).
    Avez-vous déjà rencontré ce problème ? Sauriez-vous comment le résoudre ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Quand tu dis clics successifs, tu attends bien que la requete précédente soit terminée ou pas?

    Si tu relances ta requete alors que la précédente n'est pas completement finie, ca peut poser des problèmes suivant la façon dont tes objets xhr sont déclarés et utilisés.

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Pour rebondir sur les propos de DoubleU j'ajouterai même qu'il existe par navigateur un nombre max de requête XMLHttp simultanées (2 ou 3 dans Firefox par exemple).

    ERE

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Bonjour et merci pour vos réponses.

    Oui par clics successifs je voulais bien dire sans attendre la fin des requêtes précédentes.
    Et puis vu la configuration les utilisateurs feront probablement de même.
    C'est en fait un système pour incrémenter/décrémenter de 1 la quantité d'un produit du panier.
    Pour la limite des requêtes c'est bien embêtant
    N'y a-t-il pas un moyen de détecter quand ça coince ? Histoire de déclencher la fermeture de la box ou un message erreur...
    Et quelles règles respecter pour être sûr que les objets xhr sont bien déclarés et utilisés ?

    Merci pour votre aide :-)

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut,
    Dans ton cas, ça pourrait être utile de passer en synchrone, comme ça, tant que la requête n'a pas abouti, le clic sera désactivé.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    J'ai essayé mais ça ne fonctionne pas, le comportement devient comme si le JS n'était plus activé...

  7. #7
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Par exemple, si ton objet xhr est partagé (global) pour toutes tes requetes, ca va poser un problème, il te faut un objet par requete (local).

    Tu peux également utiliser une système de vérou pour assurer qu'a chaque instant il ne peux pas y avoir plus de X objets xhr actifs (même si je ne connaissais pas la limite de requetes simultanées), ou comme le propose Bovino, empecher l'utilisateur de cliquer pour lancer une nouvelle requete.

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

Discussions similaires

  1. [2.x] Ajax - session et plantage
    Par fatbob dans le forum Symfony
    Réponses: 5
    Dernier message: 16/04/2013, 14h39
  2. [AJAX] Ajax, formulaire, div et select
    Par n8ken dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/09/2006, 10h51
  3. [AJAX] Ajax et les accents
    Par nico-pyright(c) dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/12/2005, 20h09
  4. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  5. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16

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