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

javascript事件循環(huán)event loop的簡單模型解釋與應用分析

 更新時間:2020年03月14日 11:51:56   作者:qdmoment  
這篇文章主要介紹了javascript事件循環(huán)event loop的簡單模型解釋與應用,結合實例形式分析了javascript事件循環(huán)event loop的與模型原理及使用技巧,需要的朋友可以參考下

本文實例講述了javascript事件循環(huán)event loop的簡單模型解釋與應用.分享給大家供大家參考,具體如下:

js是單線程的,但是event loop的出現(xiàn),使得js擁有可以處理高并發(fā)的性能。那么怎么理解event loop呢?網(wǎng)上百度一堆文章,什么heap,stack,micro queue,macro queue,讓初學者直接懵掉。這里采用很通俗的理解方式介紹下event loop.

event loop顧名思義是事件循環(huán),既然是循環(huán),那循環(huán)的是什么呢?

對于一個js文件,

1,執(zhí)行當前執(zhí)行上下文(初次是全局作用域)的所有同步任務,有異步任務的透出

2,執(zhí)行任務隊列里第一個異步任務,

3,執(zhí)行當前異步任務執(zhí)行上下文的所有同步任務,有異步任務透出

從上面的執(zhí)行順序可以清楚的看到循環(huán)執(zhí)行的是什么,event loop循環(huán)中的循環(huán)任務是指:

執(zhí)行某個執(zhí)行上下文的所有同步任務,透出異步任務

看一個簡單實例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>event-loop-test</title>
</head>
<body>
  <script>
    setTimeout(function(){
      console.log('測試定時事件循環(huán)')
      new Promise(function(resolve,reject){
        resolve('內層數(shù)據(jù)')
      }).then(function(data){
        console.log(data)
      })
      console.log('測試測試測試111')
      for(var i = 0; i<5000; i++){
        console.log('異步任務中的耗時同步任務')
      }
      setTimeout(function(){
        console.log(22222)  //這里透出的異步任務會在testPromise之后,在上面的for循環(huán)執(zhí)行過后,testPromise已經(jīng)透出異步任務,放到隊列中
      },0)
    },0)
    for(var i = 0; i<5000; i++){
      console.log('測試event loop')
    }
    for(var i = 0; i<5000; i++){
      console.log('測試event loop2')
    }
    var testPromise = new Promise(function(resolve,reject){
      console.log('直接測試promiseneibu')
      setTimeout(function(){
        resolve('promise測試')
        console.log('promise內部的console') 
      },10)
    })
    testPromise.then(function(data){
      console.log(data)
    })
    console.log('我是直接運行的')
  </script>
</body>
</html>

由上面的實例和分析可以得出:

任務隊列中的異步任務透出和循環(huán)層級是沒有關系的,任務隊列中的異步任務是根據(jù)透出先后順序排列的

建立一個簡單模型:

 

也可以理解為:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • ECharts異步加載數(shù)據(jù)與數(shù)據(jù)集(dataset)

    ECharts異步加載數(shù)據(jù)與數(shù)據(jù)集(dataset)

    這篇文章介紹了ECharts異步加載數(shù)據(jù)與數(shù)據(jù)集(dataset),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 禁止頁面刷新讓F5快捷鍵及右鍵都無效

    禁止頁面刷新讓F5快捷鍵及右鍵都無效

    禁止頁面刷新讓F5快捷鍵及右鍵都無效,下面有個不不錯的實現(xiàn)方法,大家可以感受下
    2014-01-01
  • js判斷在哪個瀏覽器打開項目的方法

    js判斷在哪個瀏覽器打開項目的方法

    這篇文章主要介紹了js判斷在哪個瀏覽器打開項目的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 微信小程序下面商品左右滑動上面tab也跟隨變動功能實現(xiàn)

    微信小程序下面商品左右滑動上面tab也跟隨變動功能實現(xiàn)

    這篇文章主要介紹了小程序下面商品左右滑動上面tab也跟隨變動功能,也就是點擊tab切換下面的商品信息,滑動下面的商品信息tab也進行切換,本文給大家分享實現(xiàn)代碼,需要的朋友可以參考下
    2022-07-07
  • bootstrap weebox 支持ajax的模態(tài)彈出框

    bootstrap weebox 支持ajax的模態(tài)彈出框

    本篇介紹的bootstrap weebox(支持ajax的模態(tài)彈出框),歷經(jīng)多次修改,目前版本已經(jīng)穩(wěn)定,整合了bootstrap的響應式,界面簡單,功能卻無比豐富,支持ajax、圖片預覽等等
    2017-02-02
  • 小程序獲取周圍IBeacon設備的方法

    小程序獲取周圍IBeacon設備的方法

    這篇文章主要為大家詳細介紹了小程序獲取周圍IBeacon設備的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • Redux中進行異步操作(網(wǎng)絡請求)的示例方案

    Redux中進行異步操作(網(wǎng)絡請求)的示例方案

    這篇文章主要介紹了Redux中進行異步操作(網(wǎng)絡請求)的方案,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • layUI實現(xiàn)前端分頁和后端分頁

    layUI實現(xiàn)前端分頁和后端分頁

    這篇文章主要為大家詳細介紹了layUI實現(xiàn)前端分頁和后端分頁,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 檢查表單元素的值是否為空的實例代碼

    檢查表單元素的值是否為空的實例代碼

    這篇文章主要介紹了檢查表單元素的值是否為空的實例代碼的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • 一次Webpack配置文件的分離實戰(zhàn)記錄

    一次Webpack配置文件的分離實戰(zhàn)記錄

    這篇文章主要給大家介紹了關于一次Webpack配置文件的分離實戰(zhàn)記錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11

最新評論

纳雍县| 阳曲县| 安化县| 从化市| 乳山市| 红原县| 陇南市| 偏关县| 大冶市| 襄樊市| 琼结县| 千阳县| 开阳县| 罗山县| 五大连池市| 德昌县| 红原县| 斗六市| 新疆| 涿州市| 奉贤区| 南宫市| 冕宁县| 长汀县| 晋州市| 汝南县| 湟源县| 胶州市| 廊坊市| 邻水| 漠河县| 英山县| 延川县| 玉山县| 财经| 徐闻县| 定西市| 通榆县| 缙云县| 合山市| 盐边县|