Question

Je suis relativement nouveau sur YUI. En parcourant leurs excellents documents, je ne trouve pas de méthode ni d'indicateur pour charger une ressource externe de manière synchrone .

ou la question dans l'autre sens; pour chaque nœud correspondant, j'ai besoin d'appeler une méthode qui insère quelque chose dans le nœud; Avec les appels asynchrones, les identifiants mémorisés semblent gâcher.

par conséquent, le rappel doit rester sur la

pid

quand la fonction est appelée, pas quand le rappel est exécuté - est-ce que je comprends bien?

var platform_ids = YAHOO.util.Selector.query('.platform_id'); 

for (var i = 0; i < platform_ids.length; i++) {
    var pid = platform_ids[i].getAttribute("id");
    var sUrl = "/platform/" + pid + "/description/";
    var callback = { success: function(o) { 
        document.getElementById(pid).innerHTML =  o.responseText; }}
    var transaction = YAHOO.util.Connect.asyncRequest(
        'GET', sUrl, callback, null
    );
}

merci MYYN

Était-ce utile?

La solution

Vous ne voulez pas de requête synchrone. L'expérience utilisateur peut être affreuse. Vous voulez vraiment juste passer une valeur à votre rappel pour qu'il ne s'appuie pas sur pid (qui, comme vous l'avez remarqué, aura généralement une valeur différente lors de l'appel de votre rappel):

var callback = { success: function(o) 
  { 
    document.getElementById(o.argument).innerHTML =  o.responseText; 
  }, 
  argument: pid
};

Ici, j'utilise le membre de rappel argument pour contenir l'ID, et le référence dans la fonction de rappel elle-même, en veillant à ce que chaque rappel utilise le bon ID.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top