|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
Bonjour a tous,
cela fait 2 jours que j'essaie de comprendre la raison du non fonctionnement d'une appli et je me suis rendu compte que c'est tout betement parce que les fonctions ne sont pas executées dans l'ordre que je veux: Code :
![]() please help!! MErci beucoup |
||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() sébastien courjeanInscription : novembre 2010 Messages : 204 ![]() |
Effectue ton après ton
|
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
justement non, je dois faire quelques traitement AVANT le post!!
la solution que j'ai trouvé, et qui marche bien est de rajouter un setTimeout: Code :
|
||
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 794 ![]() |
Ce que tu ne semble pas vouloir comprendre, c'est qu'avec un appel AJAX, tu n'as absolument aucune garantie du temps que prendra la requête et de quelle réponse arrivera avant l'autre.
Donc Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
Citation:
dans le code que j'ai mis, je demande juste d'executer le $.post avec un delai de 2ms |
|
|
|
00
|
|
|
#6 |
![]() ![]() Arnaud FeltzDéveloppeur .NET Inscription : août 2005 Messages : 5 204 ![]() |
Bonjour,
les requêtes AJAX s'exécutant de manière asynchrone (en tache de fond) par défaut, le comportement que vous observez est tout à fait normal, le script continue de s'exécuter sans attendre le retour de vos requêtes. Si vous souhaitez rendre vos requêtes AJAX synchrones, il faut passer par : Code :
$.ajax({ /* Vos options */, async : false });
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère Installation de Code::Blocks sous Debian à partir de Nightly Builds
|
|
00
|
|
|
#7 | |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
Merci pour vos reponses.
Citation:
me conseillez vous alors de garder le setTimeout ou plutot changer et mettre un $.ajax ?? dans la meme fonction, j'ai plusieurs appels Ajax, doivent ils etre TOUS en $.ajax ? |
|
|
|
00
|
|
|
#8 |
![]() ![]() Arnaud FeltzDéveloppeur .NET Inscription : août 2005 Messages : 5 204 ![]() |
Clairement non !!!
De manière générale, je préfère passer par $.ajax. Je suis d'accord que les méthodes fournies sont plus succintes et plus "user-friendly" mais de manière générale, ça n'est pas du tout paramétrable, on perd trop en souplesse. Pour ma part, je préfère largement passer par des $.ajax pour justement éviter d'avoir à faire la reconversion derrière et avoir une gestion des erreurs beaucoup plus poussée. De la même manière, si j'ai des options récurrentes, j'utilise $.ajaxSetup(); qui me garantie un socle commun pour mes requêtes AJAX.
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère Installation de Code::Blocks sous Debian à partir de Nightly Builds
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
OK, merci beaucoup.
je vais essayer de me motiver pour chaner mes $.post en $.ajax je pense qu'on ne peut pas melanger les $.post et $.ajax, c'est ca? si c'est le cas, est ce que l'ordre des appels ajax est respecté ?? |
|
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 794 ![]() |
Citation:
Tu peux très bien avoir un appel $.ajax et un $.post dans le même script... En revanche, tu ne peux pas faire plusieurs requêtes dans un appel. Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#11 | ||||
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
Citation:
j'ai par ailleurs lu dans la doc jquery ceci: "The first letter in Ajax stands for "asynchronous," meaning that the operation occurs in parallel and the order of completion is not guaranteed. The async option to $.ajax() defaults to true, indicating that code execution can continue after the request is made. Setting this option to false (and thus making the call no longer asynchronous) is strongly discouraged, as it can cause the browser to become unresponsive." faut il quand meme prendre le risque et utiliser l'option async?? Citation:
si par exemple j'ai 2 appels Ajax: Code :
pour le bon deroulement de mon script, dois je utiliser $.ajax avec l'option async? ou plutot utiliser l'option success ?? Merci infinimenet |
||||
|
|
00
|
|
|
#12 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 794 ![]() |
Citation:
Ceci dit, l'utilisation d'AJAX en mode synchrone est tout à fait possible, mais enlève une grande part de l'intérêt d'AJAX.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
OK, merci, je fais le necessaire et vous tiendrai au courant
|
|
|
00
|
|
|
#14 | ||
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
je bloque deja
pourriez vous svp me dire ce qui ne va pas avec ce code ? Code :
MErci |
||
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
c'est bon, j'ai reglé le probleme
mais par contre je ne vois toujours pas la difference entre les 2 maniere d'envoyer les données... devrais je a votre avis gere les erreurs avec l'option error ? si oui, quelle est la meilleure maniere de le faire? et puis pour finir, mieux vaut il utiliser type: GET ou POST ? Merci |
|
|
00
|
|
|
#17 |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
MErci pour le lien.
je cherche au fait la difference entre GET et POST en utilisant Ajax... |
|
|
00
|
|
|
#18 | |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
bon, je me crois fou en parlant avec moi meme...!!
j'ai trouvé les reponses aux questions que j'ai posées concernant les fonction et leurs ordres d'execution. Citation:
il me reste 2 solution: 1- utiliser l'option async: false 2- utiliser l'option complete la quelle est la meilleure et quelle sont les avantages et inconvénients de chaque option? |
|
|
|
00
|
|
|
#19 | ||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonjour
Avez-vous essayé d'enchaîner les appels : Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||
|
00
|
|
|
#20 |
|
Membre du Club
![]() Inscription : novembre 2007 Messages : 757 ![]() |
merci danielhagnoul pour ta reponse.
en enchaînant les appels ca marche avec les alerts mais mon probleme c'est que a la fin, je dois retourner une valeur, et elle est souvent retournée avant qu'elle soit calculée dans les appels ajax... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com