Bonjour,
Alors voilà, j'ai une paghe qui contient du Ajax en masse. Au moment ou la page est chargée, 2 appels Ajax doivent être lancés. Chacun de ces appel va modifier le contenu de balises DIV.
Mon problème - une fois de plus - est un problème de synchronisation, puisque qu'il semble que le script soit appeler alors que la page n'est pas complétement chargé, rendant inéficace mes appels ajax.
Dans mon cas précis, je précise bien que je ne peux pas modifier la balise BODY de ma page, qui est générée par un script auquel je n'ai pas accès. J'écrit donc directement mon code entre les balises BODY de la page HTML.
Pour tester, j'ai mis les appels à mes fonctions Ajax en fin de code HTML. Mais ça ne marche pas. J'ai donc - pour tester - rajouter des setTimeout a 500ms devant mes fonctions, et là ça marche. Cette solution digne d'un gros porc de peut rester tel quel.
J'ai donc cherché a essayer de lancer mon appel lorsque ma page est intégralement chargée. Je pensait pouvoir résoudre le problème en mettant un truc du style :
mais seulement voilà, une et une seule des 2 fonctions peut être executés, la 2ème ! Je ne sais pas trop ce qui se passe en arriere plan au niveau du Ajax, et je ne sais pas si c'est le fait d'avoir 2 requetes simultané qui le fait merder, ou si c'est mon prog qui colle pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <script language="javascript"> window.onload = init(); function init() { UpdMenu(0); // fonction Ajax qui charge un menu dans une div ChgQuestion({default_question}); // fonction ajax qui charge du code HTML dans une autre DIV } </script>
Alors 1er question, est-ce que window.onload est le bon event a intercepter pour coller mes appels Ajax ?
2e question : est-ce que ajax supporte des requetes simultanées comme je le fais ? Si c'est pas le cas, comment synchroniser l'appel de ma 2e fonction avec la fin de la 1er ?
3e question, si oui et oui au 2 1er question, comment puis-je régler proprement mon problème ?
En vous remerciant par avance !
Edit : Oops, copier/coller un peu brutale, le {default_question} est remplacé par un nombre par le moteur de template au moment ou la page web est générée.
Niveau JS, vous pouvez lire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ChgQuestion(10); // fonction ajax qui charge du code HTML dans une autre DIV
Partager