Alors, si je suis toujours dans le contexte de jQuery, pourquoi est-ce que si j'insère les données retournées par le serveur avec une requete AJAX ASYNC:true, les données sont insèrées mais jQuery ne les reconnait pas, et si je le fais avec ASYNC:false, jQuery les reconnait.
Salut,
Jpense que tu fais une fause interprétation du problème.
Que ca soit synchrone ou pas ca a rien avoir avec le contexte de jQuery.
Synchrone ca veut dire que tant que ton callback est pas exécuté tu passes pas à la suite du code.
Asynchrone ca veut dire que tu continues ton stuff et un beau jour tu executes le callback.
Alors c'est sur que si tu fais une asynchrone
1 2 3 4 5 6 7 8 9 10 11 12
| $.ajax({
dataType:'html',
cache:true,
type:'GET',
url:"ajax/menu.php?list",
success: function(r,s){
insertData('<li id="10">10</li> ' );
$('#select1').append( '<li id="A8">A8</li> ' );
}
});
//et que derriere tenquilles
$('#select1').remove(); |
forcément quand ton callback success est appelé, c'est très probable que ton navigateur a eu le temps de défoncer ton select.
Chose qui n'est pas possible en synchrone vu que tu exécutes pas $('#select1').remove();
tant que tu n'as pas eu de callback.
Je me souviens d'ailleurs que la synchrone fait friser le navigateur mais c'était jQuery il y a trois ans, cela dit, je vois pas cqu'ils auraient pu faire de mieux compte tenu de la nature du langage.
Bref, il serait préférable que tu mettes ton code javascript où tu testes ton truc ET ton code html.
Partager