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

jQuery Discussion :

Action dans fonction each()


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut Action dans fonction each()
    Bonjour à tous,

    j'aurais besoin d'un peut d'aide concernant la fonction each() de JQuery.

    j'utilise cette fonction pour renseigner une valeur dans une balise suite la valeur data- retourné.
    mon problème est que la fonctionne Ajax que j'ai intégré dans mon each() met beaucoup de temps à répondre (communication avec une base de données d'une machine…)
    Le temps que la fonction ajax réponde, la fonction each() fait ca vie…

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(".disponibilitee_Outil").each(function(e){ 
     
      var Refoutil = $(this).data("refoutil");
      if (Refoutil!=''){
        console.log(Refoutil);
        var actionFormulaire = "ajax/traitement.php";
        var donneesSerialiseesFormulaire = 'action=disponibilitee_Outil&refoutil='+Refoutil;
        $.post(actionFormulaire, donneesSerialiseesFormulaire, function(reponseJsonRetournee){
          if (reponseJsonRetournee['ChargementDesDonnees']==true) {
            console.log(reponseJsonRetournee['resultat']);
          }
        }, "json");
      }
    });
    Du coup dans la console avec les console.log() en résultat j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ref outil 1
    ref outil 2
    resultat ajax
    resultat ajax
    au lieu d'avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ref outil 1
    resultat ajax
    ref outil 2
    resultat ajax
    Je sais pas si je me suis bien fait comprendre..

    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Bonjour,

    D'après ce que je comprends, tu veux que les résultats soient synchronisés avec les appels ajax, mais le problème c'est qu'ils y'aura trop d'aller retour vers le serveur (deux fois dans ce cas) surtout quand le nombre de ".disponibilitee_Outil" est élevé...

    Pourquoi ne pas utiliser UNE SEULE requête ajax qui envoie un tableau de valeurs vers le serveur ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    let Refoutil=[];//déclaration d'un tableau
    $(".disponibilitee_Outil").each(function(e){ 
        Refoutil.push($(this).data("refoutil"));//stocker les valeurs de data-refoutil dans le tableau
     });
    //puis là tu envois le tableau (en passant par JSON.stringify()) une seule fois :
    var actionFormulaire = "ajax/traitement.php";
    var donneesSerialiseesFormulaire = 'action=disponibilitee_Outil&refoutil='+JSON.stringify(Refoutil);
    $.post(actionFormulaire, donneesSerialiseesFormulaire, function(reponseJsonRetournee){
          if (reponseJsonRetournee['ChargementDesDonnees']==true) {
            console.log(reponseJsonRetournee['resultat']);
          }
        }, "json");

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    Je ne connaissais pas "JSON.stringify()", merci pour la solution, j'ai fais ca cette après-midi 'est un casse tête de régler je vais pouvoir dormir

    Merci

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

Discussions similaires

  1. [XSLT 1.0] XSLT: utilisation de la fonction position() dans <for-each> imbriqués
    Par bernidupont dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/05/2011, 21h33
  2. [JSP]meme action dans 2 jsp
    Par zach dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 24/02/2005, 08h34
  3. Réponses: 5
    Dernier message: 13/08/2004, 15h40
  4. [C#] Déclencher action dans Repeater avec LinkButton
    Par globeriding dans le forum ASP.NET
    Réponses: 13
    Dernier message: 13/05/2004, 15h29
  5. Action en fonction de l'heure
    Par combattant dans le forum ASP
    Réponses: 3
    Dernier message: 17/12/2003, 17h22

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