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

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

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

 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í)行結果

發(fā)生了什么事情

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

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

規(guī)則2

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

規(guī)則3

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

規(guī)則4

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

瀏覽器渲染線程

假如javascript執(zhí)行線程執(zhí)行了A事件,在A事件執(zhí)行的過程中修改了DOM,這些DOM的修改不會立即反應到界面上,而是當A事件執(zhí)行完畢后,javascript線程會被阻塞,這時瀏覽器渲染線程會渲染DOM的修改結果,等瀏覽器渲染線程執(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);

相關文章

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

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

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

    js捕獲鼠標滾輪事件代碼

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

    js拖拽功能實現代碼解析

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

    javascript跑馬燈抽獎實例講解

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

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

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

    javascript中的altKey 和 Event屬性大全

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

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

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

    JS堆棧內存的運行機制詳解

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

    window.name代替cookie的實現代碼

    window.name代替cookie的實現代碼,需要的朋友可以參考下。
    2010-11-11
  • JavaScript常用數組算法小結

    JavaScript常用數組算法小結

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

最新評論

民权县| 抚远县| 名山县| 岳阳市| 洪泽县| 资兴市| 广安市| 会理县| 柞水县| 安乡县| 平昌县| 汶川县| 惠水县| 定边县| 尼勒克县| 凤台县| 磐安县| 太谷县| 综艺| 民勤县| 新源县| 平舆县| 库伦旗| 罗平县| 宁都县| 新竹县| 修文县| 灌云县| 瓮安县| 孙吴县| 广东省| 海晏县| 洛阳市| 宿迁市| 黄平县| 莆田市| 鄢陵县| 洪雅县| 和政县| 扎鲁特旗| 石楼县|