Bonjour tout le monde.
Ceci est ma première apparition active sur ce site alors que je le suis depuis des années....
J'espère avoir bien fait mes recherches avant de poster cette petite colle qui me bloque dans un de mes développements.
Je m'explique :
J'ai une fonction Javascript qui, en schématisé fait :
L'affichage du sablier fonctionne bien dans tous les browser, sauf dans chrome, qui, d'après ce que j'ai pu remarquer, fait d'abord le call Ajax avant de passer dans loading(true);.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function updateList() { loading(true); //affiche un sablier var newContent = getContent(url); //call Ajax + d'autres trucs maDiv.innerHTML = newContent; //mise à jour d'une zone de contenu loading(false); //retire le sablier }
Il fait donc dans l'ordre le call Ajax, puis, le loading true, ensuite le loading false...
C'est fou, car si c'est bien le cas, sa pile JS ne respecte pas l'ordre des instructions des scripts....
J'ai pu voir sur le net (peut être même sur ce forum) qu'en utilisant le chaînage jQuery, on peut gérer ce cas. Avec par exemple :
Mais cette approche ne me convient pas pour tout un tas de raisons....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //ce n'est surement pas la syntaxe exacte $(maDiv).html("chargement").load(url);
bon, heu, donc, ....
Premièrement, me suis-je bien exprimé sur le problème ?
Y a t'il quelqu'un qui a déjà eu le cas ?
Y a t'il une solution pour forcer chrome à respecter l'ordre des instruction JS lors de call Ajax ?
Merci d'avance !
Partager