2009-04-29 66 views
0

我是YUI的新手 - 瀏覽他們的優秀文檔,我沒有找到方法或標誌同步加載外部資源YUI 2.7的同步GET請求?

或者相反的問題;對於每個匹配節點,我需要調用一個方法,它在節點處插入一些東西;用異步調用記住標識符似乎搞亂了。

因此回調需要堅持

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

回答

4

你不想要一個同步請求。用戶體驗可能很糟糕。你真的只是想傳遞一個值到您的回調,這樣它不依賴於pid(其中,因爲你已經注意到,通常會有不同的值,當你調用回調函數):

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

在這裏,我使用argument回調成員來保存ID,並在回調函數本身中引用它,確保每個回調使用正確的ID。

+0

是的,我剛剛在文檔中找到了該部分;)您的代碼工作;謝謝! – miku 2009-04-29 17:12:25