我正在啓動一個具有多個過程的Web應用程序,這需要一些時間。 爲了減少加載時間,我想實現異步處理類似以下內容:如何管理JavaScript中複雜的異步處理?
loadXML()-----
\
loadCanvas()---setupCanvas()
\
setupYoutubePlayer()---------startApplication()
也就是說,加載頁面時,我要同時啓動loadXML()
,loadCanvas()
和 setupYoutubePlayer()
,和消防setupCanvas()
時loadXML()
和 loadCanvas()
完成,並且setupApplication()
在setupCanvas()
和 setupYoutubePlayer()
完成後觸發。
loadXML()
和setupCanvas()
包含AJAX處理,並且setupYoutubePlayer()
包含API的訪問,並且需要API-指定的回調函數(onYouTubeIframeAPIReady()
)。
經過幾天的谷歌搜索,我發現 jQuery.Deffered和 Async.js。說到Deferred,我可以將所有 進程封裝爲Deferred.promise()
和Deferred.resolve()
,但我發現使用when()
和then()
來實現此嵌套異步處理沒有簡單的解決方案 。 至於Async.js,我不知道處理setupYoutubePlayer()
。
我錯過了什麼?或者在這種情況下還有其他知識嗎? 請幫忙。謝謝。
簡單,最好的。這是我的建議,但o已經很好地回答了。榮譽 – Bikas