真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Javascript中實(shí)現(xiàn)異步編程的方法是什么

本篇內(nèi)容介紹了“Javascript中實(shí)現(xiàn)異步編程的方法是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計,林芝網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:林芝等地區(qū)。林芝做網(wǎng)站價格咨詢:18980820575

Javascript異步編程有哪些方法

這種模式的好處是實(shí)現(xiàn)起來比較簡單,執(zhí)行環(huán)境相對單純;壞處是只要有一個任務(wù)耗時很長,后面的任務(wù)都必須排隊等著,會拖延整個程序的執(zhí)行。常見的瀏覽器無響應(yīng)(假死),往往就是因?yàn)槟骋欢蜫avascript代碼長時間運(yùn)行(比如死循環(huán)),導(dǎo)致整個頁面卡在這個地方,其他任務(wù)無法執(zhí)行。

為了解決這個問題,Javascript語言將任務(wù)的執(zhí)行模式分成兩種:同步(Synchronous)和異步(Asynchronous)。

"同步模式"就是上一段的模式,后一個任務(wù)等待前一個任務(wù)結(jié)束,然后再執(zhí)行,程序的執(zhí)行順序與任務(wù)的排列順序是一致的、同步的;"異步模式"則完全不同,每一個任務(wù)有一個或多個回調(diào)函數(shù)(callback),前一個任務(wù)結(jié)束后,不是執(zhí)行后一個任務(wù),而是執(zhí)行回調(diào)函數(shù),后一個任務(wù)則是不等前一個任務(wù)結(jié)束就執(zhí)行,所以程序的執(zhí)行順序與任務(wù)的排列順序是不一致的、異步的。

"異步模式"非常重要。在瀏覽器端,耗時很長的操作都應(yīng)該異步執(zhí)行,避免瀏覽器失去響應(yīng),最好的例子就是Ajax操作。在

四、Promises對象

Promises對象是CommonJS工作組提出的一種規(guī)范,目的是為異步編程提供統(tǒng)一接口。

簡單說,它的思想是,每一個異步任務(wù)返回一個Promise對象,該對象有一個then方法,允許指定回調(diào)函數(shù)。比如,f1的回調(diào)函數(shù)f2,可以寫成:

f1().then(f2);

f1要進(jìn)行如下改寫(這里使用的是jQuery的實(shí)現(xiàn)):

functionf1(){

vardfd=$.Deferred();

setTimeout(function(){

//f1的任務(wù)代碼

dfd.resolve();

},500);

returndfd.promise;

}

這樣寫的優(yōu)點(diǎn)在于,回調(diào)函數(shù)變成了鏈?zhǔn)綄懛?,程序的流程可以看得很清楚,而且有一整套的配套方法,可以?shí)現(xiàn)許多強(qiáng)大的功能。

比如,指定多個回調(diào)函數(shù):

f1().then(f2).then(f3);

再比如,指定發(fā)生錯誤時的回調(diào)函數(shù):

f1().then(f2).fail(f3);

而且,它還有一個前面三種方法都沒有的好處:如果一個任務(wù)已經(jīng)完成,再添加回調(diào)函數(shù),該回調(diào)函數(shù)會立即執(zhí)行。所以,你不用擔(dān)心是否錯過了某個事件或信號。這種方法的缺點(diǎn)就是編寫和理解,都相對比較難。

“Javascript中實(shí)現(xiàn)異步編程的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


標(biāo)題名稱:Javascript中實(shí)現(xiàn)異步編程的方法是什么
當(dāng)前地址:
http://weahome.cn/article/gieics.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部