Demande GET synchrone avec YUI 2.7?
-
03-07-2019 - |
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
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.