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 :

synchronicité et callback (success) en mode async


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut synchronicité et callback (success) en mode async
    Salut ! Alors voila j'ai réalisé un site web ....

    Et il marche sauf qu'il est plutot lent .... en fait j'ai un probleme de synchronicité et je trouve pas comment remédier à ça

    J'ai normalement codé mon site en ajax mais je suis obligé de faire ca:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		function ajax_call(what2do, callback){
    			$.ajax({
    				type: "GET",
    				async: false,
    				dataType: "json",
    				url: "data.php?" + what2do,
    				success: function(json) {
    					callback.call(this, json);										
    				}			
    			});	
    		};
    Donc je pense qu'en fait il essaye d afficher les valeurs avant de les avoir calculé ?

    Et le fait que je le mette synchrone au lieu d asynchrone rend le site plus lent non ?

    Donc j'aimerai le mettre asynchrone mais que ca marche ..... ^^


    La pour le moment tout marche en sync.

    Ci join, je met mon fichier index et le fichier data.php.

    J espere que vous pourrez m'aider ...
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    essaye une machine a voyager dans le temps de sorte qu'il puisse obtenir une réponse avant que le serveur ne l'ait délivrée ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    je suis obligé de faire ca
    Bonjour,
    Il aurait été plus pertinent de nous dire pourquoi tu es obligé de faire ça. Décrire le problème plutôt qu'une (mauvaise) solution. Qu'as-tu en console ?

    Si c'est bien ce que je penses, il s'agit d'une erreur de codage classique. Tu exécutes un code dépendant de données asynchrones en dehors du callback de ta requête AJAX. Un peu comme ici :
    http://www.developpez.net/forums/d12...rtee-variable/

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Merci de ta réponse Sylvain

    Pourquoi je suis obligé de faire ? Le probleme est la je ne sais pas tout ce que je sais c que si je ne le fais pas rien ne marche.

    Si je savais pourquoi je pense que oui je pourrais trouvé la solution


    Sinon je n ai pas bien compris la suite ....

    En fait oui j ai du code a coté comme on peut le voir qui va changer l adresse url suivant les données que je veux récupérer et cette adresse je la crée suivant les options définies par l utilisateur

  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
    A quoi te sers call() exactement dans ton code
    Parce que je doute que la valeur this transmise soit celle que tu espères...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function ajax_call(what2do, callback){
    	$.ajax({
    		type: "GET",
    		dataType: "json",
    		url: "data.php?" + what2do,
    		success: function(json) {
    			callback(json);
    		}
    	});
    };
    devrait être suffisant...
    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
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    j'ai essayé de faire comme tu m as conseillé bovino mais plus rien ne marche :/

    Alors j'ai essayé en remettant le async à "False"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function ajax_call(what2do, callback){
    			$.ajax({
    				type: "GET",
    				async: false,
    				dataType: "json",
    				url: "data.php?" + what2do,
    				success: function(json) {
    					callback(json);
    				}
    			});
    		};

    Et la ca marche donc merci =)

    Mais l’exécution n'est pas plus rapide

Discussions similaires

  1. Async et attente traitement du callback
    Par loudo dans le forum NodeJS
    Réponses: 1
    Dernier message: 19/03/2015, 12h47
  2. Store.load, callback et success=false
    Par Bruno13 dans le forum Ext JS / Sencha
    Réponses: 12
    Dernier message: 07/11/2014, 17h12
  3. callback:function(records, operation, success)
    Par solo190 dans le forum Ext JS / Sencha
    Réponses: 16
    Dernier message: 07/10/2014, 18h19
  4. [AJAX] jQuery $.post() en mode async ?
    Par Ennicolem dans le forum jQuery
    Réponses: 0
    Dernier message: 31/05/2013, 14h38
  5. [Débutant] Callback Contract avec un service WCF en single mode
    Par Seth77 dans le forum Windows Communication Foundation
    Réponses: 7
    Dernier message: 24/05/2012, 23h25

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