本篇內容主要講解“Javascript中怎么實現(xiàn)異步編程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Javascript中怎么實現(xiàn)異步編程”吧!
創(chuàng)新互聯(lián)建站是一家專業(yè)提供東豐企業(yè)網站建設,專注與成都做網站、網站設計、外貿營銷網站建設、H5建站、小程序制作等業(yè)務。10年已為東豐眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站設計公司優(yōu)惠進行中。
Javascript異步編程有哪些方法
這種模式的好處是實現(xiàn)起來比較簡單,執(zhí)行環(huán)境相對單純;壞處是只要有一個任務耗時很長,后面的任務都必須排隊等著,會拖延整個程序的執(zhí)行。常見的瀏覽器無響應(假死),往往就是因為某一段Javascript代碼長時間運行(比如死循環(huán)),導致整個頁面卡在這個地方,其他任務無法執(zhí)行。
為了解決這個問題,Javascript語言將任務的執(zhí)行模式分成兩種:同步(Synchronous)和異步(Asynchronous)。
"同步模式"就是上一段的模式,后一個任務等待前一個任務結束,然后再執(zhí)行,程序的執(zhí)行順序與任務的排列順序是一致的、同步的;"異步模式"則完全不同,每一個任務有一個或多個回調函數(shù)(callback),前一個任務結束后,不是執(zhí)行后一個任務,而是執(zhí)行回調函數(shù),后一個任務則是不等前一個任務結束就執(zhí)行,所以程序的執(zhí)行順序與任務的排列順序是不一致的、異步的。
"異步模式"非常重要。在瀏覽器端,耗時很長的操作都應該異步執(zhí)行,避免瀏覽器失去響應,最好的例子就是Ajax操作。在 四、Promises對象 Promises對象是CommonJS工作組提出的一種規(guī)范,目的是為異步編程提供統(tǒng)一接口。 簡單說,它的思想是,每一個異步任務返回一個Promise對象,該對象有一個then方法,允許指定回調函數(shù)。比如,f1的回調函數(shù)f2,可以寫成: f1().then(f2); f1要進行如下改寫(這里使用的是jQuery的實現(xiàn)): functionf1(){ vardfd=$.Deferred(); setTimeout(function(){ //f1的任務代碼 dfd.resolve(); },500); returndfd.promise; } 這樣寫的優(yōu)點在于,回調函數(shù)變成了鏈式寫法,程序的流程可以看得很清楚,而且有一整套的配套方法,可以實現(xiàn)許多強大的功能。 比如,指定多個回調函數(shù): f1().then(f2).then(f3); 再比如,指定發(fā)生錯誤時的回調函數(shù): f1().then(f2).fail(f3); 而且,它還有一個前面三種方法都沒有的好處:如果一個任務已經完成,再添加回調函數(shù),該回調函數(shù)會立即執(zhí)行。所以,你不用擔心是否錯過了某個事件或信號。這種方法的缺點就是編寫和理解,都相對比較難。 到此,相信大家對“Javascript中怎么實現(xiàn)異步編程”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
本文題目:Javascript中怎么實現(xiàn)異步編程
網站地址:http://weahome.cn/article/gdieeh.html