欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單談?wù)凧avaScript的同步與異步

 更新時間:2015年12月31日 08:50:03   投稿:hebedich  
這篇文章主要介紹了簡單談?wù)凧avaScript的同步與異步的相關(guān)資料,需要的朋友可以參考下

1.手繪一張圖說明。

2.為什么JavaScript是單線程(這里引用阮一峰老師的話)

JavaScript的單線程,與它的用途有關(guān)。

作為瀏覽器腳本語言,JavaScript的主要用途是與用戶互動,以及操作DOM。

這決定了它只能是單線程,否則會帶來很復(fù)雜的同步問題。

比如,假定JavaScript同時有兩個線程,一個線程在某個DOM節(jié)點上添加內(nèi)容,另一個線程刪除了這個節(jié)點,這時瀏覽器應(yīng)該以哪個線程為準?

所以,為了避免復(fù)雜性,從一誕生,JavaScript就是單線程,這已經(jīng)成了這門語言的核心特征,將來也不會改變。

為了利用多核CPU的計算能力,HTML5提出Web Worker標準,允許JavaScript腳本創(chuàng)建多個線程,但是子線程完全受主線程控制,且不得操作DOM。

所以,這個新標準并沒有改變JavaScript單線程的本質(zhì)。

傳送門:JavaScript運行機制之事件循環(huán)(Event Loop)詳解

3.JavaScript的異步體現(xiàn)在哪

如一開始的圖,個人認為左邊主線程就是同步,左邊事件隊列(消息隊列)就是異步。

當(dāng)然JavaScript中的異步有很多:

Ajax(XMLHttpRequest)
Image Tag,Script Tag,iframe(原理類似)
setTimeout/setInterval
CSS3 Transition/Animation
postMessage
Web Workers
Web Sockets
and more…

相關(guān)文章

  • 使用typescript類型實現(xiàn)ThreeSum

    使用typescript類型實現(xiàn)ThreeSum

    這篇文章主要介紹了使用typescript類型實現(xiàn)ThreeSum,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以一下,希望對你學(xué)習(xí)又是幫助
    2022-08-08
  • JavaScript評論點贊功能的實現(xiàn)方法

    JavaScript評論點贊功能的實現(xiàn)方法

    通過分析評論功能的邏輯關(guān)系,學(xué)會如何使用JavaScript實現(xiàn)評論、回復(fù)、點贊等各種功能。這篇文章主要介紹了JavaScript評論點贊功能的實現(xiàn)方法,需要的朋友可以參考下
    2017-03-03
  • Parcel.js + Vue 2.x 極速零配置打包體驗教程

    Parcel.js + Vue 2.x 極速零配置打包體驗教程

    這篇文章主要介紹了Parcel.js + Vue 2.x 極速零配置打包體驗 的相關(guān)資料,需要的朋友可以參考下
    2017-12-12
  • JavaScript可選鏈的實現(xiàn)示例

    JavaScript可選鏈的實現(xiàn)示例

    本文主要介紹了JavaScript可選鏈的實現(xiàn)示例,它通過使用問號(?)來判斷屬性或函數(shù)是否存在,避免了因為屬性或函數(shù)不存在而導(dǎo)致的錯誤,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • js判斷子窗體是否關(guān)閉的方法

    js判斷子窗體是否關(guān)閉的方法

    這篇文章主要介紹了js判斷子窗體是否關(guān)閉的方法,涉及javascript針對子窗體的獲取與屬性判定技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • 詳解JS中的compose函數(shù)和pipe函數(shù)用法

    詳解JS中的compose函數(shù)和pipe函數(shù)用法

    這篇文章主要介紹了JS中的compose函數(shù)和pipe函數(shù)用法,想深入了解Javascript的同學(xué),可以參考下
    2021-04-04
  • JavaScript鏈式調(diào)用實例淺析

    JavaScript鏈式調(diào)用實例淺析

    這篇文章主要介紹了JavaScript鏈式調(diào)用,結(jié)合實例形式分析了javascript鏈式調(diào)用的相關(guān)原理、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下
    2018-12-12
  • HTML+JS模擬實現(xiàn)QQ下拉菜單效果

    HTML+JS模擬實現(xiàn)QQ下拉菜單效果

    這篇文章主要為大家詳細介紹了如何利用HTML+JavaScript模擬實現(xiàn)QQ中的下拉菜單效果。文中的示例代碼講解詳細,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-05-05
  • js+canvas實現(xiàn)繪制正方形并插入文字效果(居中顯示)

    js+canvas實現(xiàn)繪制正方形并插入文字效果(居中顯示)

    canvas是一個可以讓我們使用腳本繪圖的標簽,它提供了一系列完整的屬性和方法,下面這篇文章主要給大家介紹了js+canvas實現(xiàn)繪制正方形并插入文字居中顯示效果的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • javascript中Date對象應(yīng)用之簡易日歷實現(xiàn)

    javascript中Date對象應(yīng)用之簡易日歷實現(xiàn)

    這篇文章主要為大家詳細介紹了javascript中Date對象應(yīng)用之簡易日歷實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評論