c'est ta façon de concevoir les appels qui est erronée :
ce que tu veux faire :
Code:
1 2 3 4
| appeler une fonction,
que la fonction fasse une requête au serveur,
attendre la réponse,
retourner la réponse reçue |
en général, "attendre" en javascript comme dans beaucoup de langages, c'est mal car ça bloque l'exécution. même si c'est permis et même conçu pour ("arguments synchrone") je te le déconseille vivement.
la bonne façon de faire est :
Code:
1 2 3
| appeler une fonction,
que la fonction fasse une requête au serveur,
s'arrêter là pour le moment. |
Code:
1 2 3
| utiliser une autre fonction(callback/success) qui se déclenche lorsque la réponse arrive
appeler l'une ou l'autre méthode en fonction de la réponse, du status de la page etc..
utiliser la réponse et eventuellement mettre la page à jour. |
oublie donc les valeurs de retour avec ce système, tu peux par contre créer des timers (setTimeout) pour detecter des délais trop long par exemple.