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

你必須知道的Javascript知識點之"單線程事件驅(qū)動"的使用

 更新時間:2013年04月23日 09:59:57   作者:  
本篇文章小編為大家介紹,你必須知道的Javascript知識點之"單線程事件驅(qū)動"的使用。需要的朋友參考下
復制代碼 代碼如下:

 var intervalBody = function(){
     console.log('interval');
 }

 var startInterval = function(){
     setInterval(intervalBody,1000);
 }

 var timeoutBody = function(){
     console.log('timeout');
 }

 var startTimeout = function(){
     setTimeout(timeoutBody,1000);
 }

 var sleep = function(second){
     var current = new Date().setSeconds(new Date().getSeconds() + second);
     while(new Date() < current){ }
 }

 startInterval();
 startTimeout();
 sleep(2);
 console.log('sleep once');
 sleep(2);
 console.log('sleep again');

執(zhí)行結(jié)果

發(fā)生了什么事情

執(zhí)行規(guī)則規(guī)則1

事件驅(qū)動的單線程模型,所有javascript的代碼都在一個線程中執(zhí)行,javascript線程從事件隊列中一次取出一個事件進行執(zhí)行。

規(guī)則2

宿主中除了javascript線程外,還有定時器線程(setInterval和setTimeout會觸發(fā)這兩個線程執(zhí)行)、瀏覽器事件觸發(fā)線程(這個線程會觸發(fā)onclick、onmousemove和其它瀏覽器事件)、AJAX請求線程;所有這些線程觸發(fā)的事件(回調(diào))都會加入到事件隊列的尾部。

規(guī)則3

當瀏覽器加載完html文檔后,會將當前html的所有的js代碼作為事件隊列的第一個事件,其它線程觸發(fā)的事件(回調(diào))都會加入到事件隊列的尾部。

規(guī)則4

setTimeout和setInterval中的回調(diào)的執(zhí)行時間肯定是大于為其指定的秒數(shù)。

瀏覽器渲染線程

假如javascript執(zhí)行線程執(zhí)行了A事件,在A事件執(zhí)行的過程中修改了DOM,這些DOM的修改不會立即反應到界面上,而是當A事件執(zhí)行完畢后,javascript線程會被阻塞,這時瀏覽器渲染線程會渲染DOM的修改結(jié)果,等瀏覽器渲染線程執(zhí)行完畢后,javascript線程才繼續(xù)運行。

代碼示例

復制代碼 代碼如下:

var sleep = function(second){
     var current = new Date().setSeconds(new Date().getSeconds() + second);
     while(new Date() < current){ }
 }

 document.body.innerHTML = '段光偉';
 sleep(5);

相關(guān)文章

  • js解決url傳遞中文參數(shù)亂碼問題的方法詳解

    js解決url傳遞中文參數(shù)亂碼問題的方法詳解

    前后臺用js傳參過程中,如果是中文就容易出現(xiàn)亂碼,下面這篇文章主要給大家介紹了關(guān)于js解決url傳遞中文參數(shù)亂碼問題的的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • js捕獲鼠標滾輪事件代碼

    js捕獲鼠標滾輪事件代碼

    本文為大家介紹下如何使用js捕獲鼠標滾輪事件,原理很簡單,感興趣的朋友可以參考下
    2013-12-12
  • js拖拽功能實現(xiàn)代碼解析

    js拖拽功能實現(xiàn)代碼解析

    這篇文章主要為大家詳細介紹了js實現(xiàn)拖拽功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • javascript跑馬燈抽獎實例講解

    javascript跑馬燈抽獎實例講解

    這篇文章主要為大家介紹了javascript跑馬燈抽獎特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • window.open不被攔截的簡單實現(xiàn)代碼(推薦)

    window.open不被攔截的簡單實現(xiàn)代碼(推薦)

    下面小編就為大家?guī)硪黄獁indow.open不被攔截的簡單實現(xiàn)代碼(推薦) 。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • javascript中的altKey 和 Event屬性大全

    javascript中的altKey 和 Event屬性大全

    本文給大家介紹javascript中的altkey和event屬性大全,涉及到altkey和event屬性語法定義及用法,本文介紹的非常詳細,感興趣的朋友一起看看吧
    2015-11-11
  • 原生JavaScript實現(xiàn)精美的淘寶輪播圖效果示例【附demo源碼下載】

    原生JavaScript實現(xiàn)精美的淘寶輪播圖效果示例【附demo源碼下載】

    這篇文章主要介紹了原生JavaScript實現(xiàn)精美的淘寶輪播圖效果,結(jié)合完整實例形式詳細分析了javascript實現(xiàn)淘寶輪播圖功能的相關(guān)HTML布局、css及js核心功能代碼,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-05-05
  • JS堆棧內(nèi)存的運行機制詳解

    JS堆棧內(nèi)存的運行機制詳解

    棧內(nèi)存主要用于存儲各種基本類型的變量,包括Boolean、Number、String、Undefined、Null,以及對象變量的指針(地址值),這篇文章主要介紹了JS堆棧內(nèi)存的運行機制,需要的朋友可以參考下
    2022-06-06
  • window.name代替cookie的實現(xiàn)代碼

    window.name代替cookie的實現(xiàn)代碼

    window.name代替cookie的實現(xiàn)代碼,需要的朋友可以參考下。
    2010-11-11
  • JavaScript常用數(shù)組算法小結(jié)

    JavaScript常用數(shù)組算法小結(jié)

    在開發(fā)項目的過程中,我們經(jīng)常會需要關(guān)于javascript數(shù)組的一些算法,比方說數(shù)組去重、數(shù)組求交集、數(shù)組擾亂等等。今天就把個人的匯總整理的算法分享給大家。
    2016-02-02

最新評論

富民县| 名山县| 玛纳斯县| 镇坪县| 华蓥市| 株洲县| 绥化市| 克山县| 册亨县| 三河市| 南涧| 阳东县| 长治市| 中山市| 仪陇县| 武邑县| 壤塘县| 青海省| 瑞安市| 峨眉山市| 灵石县| 珲春市| 莱阳市| 铅山县| 东山县| 江西省| 安达市| 高阳县| 沙雅县| 通许县| 鹤岗市| 浪卡子县| 漳浦县| 宝鸡市| 建德市| 中西区| 贵州省| 延庆县| 万年县| 新野县| 林芝县|