我对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

有帮助吗?

解决方案

您不需要同步请求。用户体验可能很糟糕。你真的只想将一个值传递给你的回调,这样它就不依赖于 pid (正如你所注意到的那样,当你的回调被调用时,它通常会有不同的值):

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

在这里,我使用参数回调成员来保存ID,并在回调函数本身中引用它,确保每个回调使用正确的ID。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top