最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單談?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)該以哪個線程為準(zhǔn)?

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

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

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

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

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

如一開始的圖,個人認(rè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)文章

  • 前端常用的js函數(shù)方法

    前端常用的js函數(shù)方法

    這篇文章主要給大家分享的是常用的js函數(shù)的方法,告別搜索引擎的幫助,提高你的開發(fā)效率,,需要的朋友可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2021-12-12
  • 詳解小程序橫屏方案對比

    詳解小程序橫屏方案對比

    這篇文章主要介紹了小程序橫屏方案對比,實現(xiàn)橫屏的方案也有多種,但是每種方案都有一定的缺陷,恰巧最近也在橫屏方案上踩了不少坑,本文就一起來介紹一下吧
    2020-06-06
  • JavaScript?WebGL?圖片透明處理的方式

    JavaScript?WebGL?圖片透明處理的方式

    WebGL 透明處理方式之一是使用 α 混合,這篇文章主要介紹了JavaScript?WebGL?圖片透明處理方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • JavaScript SweetAlert插件實現(xiàn)超酷消息警告框

    JavaScript SweetAlert插件實現(xiàn)超酷消息警告框

    SweetAlert是一款使用純js制作的消息警告框插件.這篇文章主要介紹了JavaScript SweetAlert插件實現(xiàn)超酷消息警告框的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • JavaScript樹形結(jié)構(gòu)數(shù)組處理之遞歸問題

    JavaScript樹形結(jié)構(gòu)數(shù)組處理之遞歸問題

    這篇文章主要介紹了JavaScript樹形結(jié)構(gòu)數(shù)組處理之遞歸問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • MutationObserver監(jiān)視對DOM?樹所做更改的功能妙用

    MutationObserver監(jiān)視對DOM?樹所做更改的功能妙用

    這篇文章主要為大家介紹了MutationObserver監(jiān)視對DOM?樹所做更改的功能妙用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • JavaScript call apply使用 JavaScript對象的方法綁定到DOM事件后this指向問題

    JavaScript call apply使用 JavaScript對象的方法綁定到DOM事件后this指向問題

    JavaScript對象與DOM對象進(jìn)行綁定會遇到一個問題:如果被綁定的對象的方法中包含this關(guān)鍵字,當(dāng)事件被觸發(fā)時this指向的卻是DOM對象,而不是之前的JS對象。
    2011-09-09
  • javascript性能優(yōu)化之事件委托實例詳解

    javascript性能優(yōu)化之事件委托實例詳解

    這篇文章主要介紹了javascript性能優(yōu)化之事件委托用法,結(jié)合實例形式對比分析了JavaScript中事件委托的具體用法與優(yōu)點,需要的朋友可以參考下
    2015-12-12
  • javascript中Array()數(shù)組函數(shù)詳解

    javascript中Array()數(shù)組函數(shù)詳解

    在JavaScript中數(shù)組也是比較常用的對象之一,數(shù)組是值的有序集合,本篇文章給大家分享Javascript中Array()數(shù)組函數(shù)詳解,需要的朋友可以參考下
    2015-08-08
  • laypage.js分頁插件使用方法詳解

    laypage.js分頁插件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了laypage.js分頁插件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論

东台市| 城固县| 灵台县| 昌图县| 荣成市| 永城市| 西城区| 长顺县| 荣昌县| 岱山县| 湘潭县| 时尚| 邵阳市| 南投县| 竹山县| 日土县| 江陵县| 榕江县| 铁力市| 神农架林区| 梁山县| 辽源市| 井冈山市| 府谷县| 蒙山县| 定日县| 深圳市| 綦江县| 三门县| 兴文县| 华安县| 洮南市| 乳山市| 台东市| 钟山县| 扎兰屯市| 即墨市| 吉林市| 弥勒县| 四平市| 仁寿县|