2009-04-29 11 views
0

Je suis relativement nouveau à YUI - en naviguant leurs grands docs, je ne trouve pas une méthode ou un drapeau pour charger une ressource externe synchrone.Demande GET synchrone avec YUI 2.7?

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 au nœud; avec des appels asynchrones rappelésidentificateurs semblent gâcher.

donc le rappel doivent coller à la

pid 

lorsque la fonction est appelée, pas quand le rappel est exécuté - que je reçois ce droit?

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

Répondre

4

Vous ne souhaitez pas de demande synchrone. L'expérience utilisateur peut être horrible. Vous voulez vraiment juste pour passer une valeur à votre rappel afin qu'il soit ne pas compter sur pid (qui, comme vous l'avez remarqué, habituellement une valeur différente lorsque votre rappel est appelée):

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

Ici, je utilisez le membre de rappel argument pour contenir l'ID et référencez-le dans la fonction de rappel elle-même, en vous assurant que chaque rappel utilise l'ID correct.

+0

oui, je viens de trouver la partie dans les docs;) votre code a fonctionné; Merci! – miku