使用YUI 2.7进行同步GET请求?

时间:2009-04-29 16:59:01

标签: javascript yui callback request synchronous

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

1 个答案:

答案 0 :(得分:4)

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

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

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