色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Javascript 異步編程的4種方法

  你可能知道,Javascript語言的執行環境是"單線程"(single thread)。

  所謂"單線程",就是指一次只能完成一件任務。如果有多個任務,就必須排隊,前面一個任務完成,再執行后面一個任務,以此類推。

  這種模式的好處是實現起來比較簡單,執行環境相對單純;壞處是只要有一個任務耗時很長,后面的任務都必須排隊等著,會拖延整個程序的執行。常見的瀏覽器無響應(假死),往往就是因為某一段Javascript代碼長時間運行(比如死循環),導致整個頁面卡在這個地方,其他任務無法執行。

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

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

  "異步模式"非常重要。在瀏覽器端,耗時很長的操作都應該異步執行,避免瀏覽器失去響應,最好的例子就是Ajax操作。在服務器端,"異步模式"甚至是唯一的模式,因為執行環境是單線程的,如果允許同步執行所有http請求,服務器性能會急劇下降,很快就會失去響應。

  本文總結了"異步模式"編程的4種方法,理解它們可以讓你寫出結構更合理、性能更出色、維護更方便的Javascript程序。

  一、回調函數

  這是異步編程最基本的方法。

  假定有兩個函數f1和f2,后者等待前者的執行結果。

f1();f2(); 

it知識庫Javascript 異步編程的4種方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 安阳市| 宁陵县| 云龙县| 嘉荫县| 文登市| 开平市| 澄江县| 福贡县| 织金县| 舟曲县| 河间市| 澎湖县| 靖边县| 灵丘县| 德令哈市| 株洲县| 慈利县| 阜南县| 若羌县| 永寿县| 大化| 区。| 南康市| 巧家县| 彭水| 驻马店市| 盐池县| 昌平区| 阳西县| 棋牌| 壶关县| 东乌珠穆沁旗| 焦作市| 白水县| 山东省| 双辽市| 西乌| 黄陵县| 陆河县| 沂水县| 左云县|