使用jQuery載入承諾
deferred
,還有什麼沒有,所以在這一點上,我有一個關於如何做以下的問題.
我的團隊和我有3個單獨的.load()方法,每個都抓住一個特定的模板,並將其附加到同一個容器.每個負載需要不同的時間量,所以當內容載入時,它會以“階梯”的方式載入(1,然後是2,然後3).我想使用
deferred
objects
,等到它們都完成,然後在同一時間附加它們來刪除“樓梯步”動作.
$('<div>').load(baseInfoTemplate, function () { var baseData = { // build some object }; $.tmpl(this, baseData).appendTo($generalContainer); });
所有三個呼叫都與上述呼叫類似.
我該如何實現?
$.load()不是設計用於Deferred物件,而且還專門用於將東西放到頁面中.
要解決後一個問題,您必須將整個容器放在DOM外部,然後將它們全部完成,或者您需要累積三個結果,然後將它們全部放在一起.
下面的過程使用後一種方法:
>使用$.get(),並建立一個由$.get()返回的jqXHR物件的陣列,
>將每個$.get()的返回片段儲存在陣列中
>使用$.when.apply($,myArray).done(function(){…})應用模板並將其放入DOM
http://stackoverflow.com/questions/6507181/using-jquery-load-with-promises
本站文章除註明轉載外,均為本站原創或編譯
轉載請明顯位置註明出處:使用jQuery載入承諾