我对YUI比较新 - 浏览他们的优秀文档,我没有找到加载外部资源的方法或标志同步。
或反过来的问题;对于每个匹配的节点,我需要调用一个方法,在节点处插入一些东西;通过异步调用,记住的 标识符似乎搞得一团糟。
因此回调需要坚持
pid
当调用函数时,而不是在回调被执行时 - 我是否正确?
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
);
}
感谢。 MYYN
答案 0 :(得分:4)
您不需要同步请求。用户体验可能很糟糕。你真的只想将一个值传递给你的回调,这样它就不依赖于pid
(正如你所注意到的那样,当你的回调被调用时,它通常会有不同的值):
var callback = { success: function(o)
{
document.getElementById(o.argument).innerHTML = o.responseText;
},
argument: pid
};
在这里,我使用argument
回调成员来保存ID,并在回调函数本身中引用它,确保每个回调使用正确的ID。