中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

淺談JavaScript瀏覽器渲染機(jī)制以及定時(shí)機(jī)制
來源:易賢網(wǎng) 閱讀:2267 次 日期:2015-03-18 11:35:56
溫馨提示:易賢網(wǎng)小編為您整理了“淺談JavaScript瀏覽器渲染機(jī)制以及定時(shí)機(jī)制”,方便廣大網(wǎng)友查閱!

大家先來看一道題:

a.onclick = function(){

setTimeout(function() {

//do something ...

},0);

};

JavaScript API 文檔明確定義:setTimeout的第二個(gè)參數(shù)意義為隔多少毫秒后,回調(diào)方法就會(huì)被執(zhí)行。那么可以推斷出:這里設(shè)成0毫秒,就立即被執(zhí)行了。

—————— 既然立即執(zhí)行,為什么這段代碼的作者為什么要 舍近求遠(yuǎn)?難道作者寫代碼的時(shí)候喝醉了?

顯然不是!

這個(gè)問題 David Flanagan 在《Javascript 權(quán)威指南》中有闡述:當(dāng) setTimeout 的延遲時(shí)間設(shè)置為 0 的時(shí)候,回調(diào)函數(shù)不會(huì)馬上執(zhí)行,而是進(jìn)入隊(duì)列。

David Flanagan 在《Javascript權(quán)威指南》里并沒有詳細(xì)描述Javascript隊(duì)列的具體運(yùn)作方式,現(xiàn)在我來大致說一下這個(gè)問題。

JavaScript 引擎是單線程模式運(yùn)行的,瀏覽器無論在什么時(shí)候都只且只有一個(gè)JavaScript線程在運(yùn)行程序。

要說清楚這些問題,還得從瀏覽器內(nèi)核處理定時(shí)器(setTimeout、setInterval)和響應(yīng)瀏覽器事件說起。

瀏覽器內(nèi)核實(shí)現(xiàn)允許多個(gè)線程異步執(zhí)行,這些線程在內(nèi)核制控下相互配合以保持同步。假設(shè)某一瀏覽器內(nèi)核的實(shí)現(xiàn)至少有三個(gè)常駐線程:javascript引擎線程、界面渲染線程、瀏覽器事件觸發(fā)線程。除些以外,也有一些執(zhí)行完就終止的線程:如Http請(qǐng)求線程等,這些異步線程都會(huì)產(chǎn)生不同的異步事件。

下面通過一個(gè)圖來闡明單線程的JavaScript引擎與另外那些線程是怎樣互動(dòng)通信的。雖然每個(gè)瀏覽器內(nèi)核 (流行瀏覽器內(nèi)核有:Trident[IE內(nèi)核]、Gecko[Firefox內(nèi)核]、Presto[Opera內(nèi)核]、Webkit[Chrome、Safari] 等) 實(shí)現(xiàn)細(xì)節(jié)不同,但這其中的調(diào)用原理都是大同小異。

名單

JavaScript定時(shí)機(jī)制、以及瀏覽器渲染機(jī)制 淺談 javascript-thread

瀏覽器中的JavaScript引擎是基于事件驅(qū)動(dòng)的。這里的事件可看作是瀏覽器派給它的各種任務(wù),如調(diào)用setTimeout 添加一個(gè)任務(wù),也可來自瀏覽器內(nèi)核的其它線程,如界面元素鼠標(biāo)點(diǎn)擊事件、定時(shí)觸發(fā)器時(shí)間到達(dá)通知、異步請(qǐng)求狀態(tài)變更通知等。

從代碼角度看來任務(wù)實(shí)體就是各種回調(diào)函數(shù),JavaScript引擎一直等待著任務(wù)隊(duì)列中任務(wù)的到來。由于單線程關(guān)系,這些任務(wù)得進(jìn)行排隊(duì),一個(gè)接著一個(gè)被引擎處理。

圖形界面渲染線程:

該線程負(fù)責(zé)渲染瀏覽器界面HTML元素,當(dāng)界面需要重繪或由于某種操作引發(fā)回流時(shí),該線程就會(huì)執(zhí)行。

我今天想重點(diǎn)解釋JavaScript定時(shí)機(jī)制,但這時(shí)有必要說說渲染線程,因?yàn)樵摼€程與JavaScript引擎線程是互斥的!這一點(diǎn)Yahoo 前端攻城師在博客上有一篇詳細(xì)文章描述這個(gè)問題。這也容易理解:因?yàn)镴avaScript腳本是可操縱DOM元素,在修改這些元素屬性同時(shí)渲染界面,那么渲染線程前后獲得的元素?cái)?shù)據(jù)就可能不一致了。

在JavaScript引擎運(yùn)行腳本期間,瀏覽器渲染線程都是處于掛起狀態(tài)的,也就是說被”凍結(jié)”了(題外話:YSlow優(yōu)化網(wǎng)頁建議指南指出:js文件要放在html內(nèi)容的下面,就是因?yàn)榧虞d js 的時(shí)候,會(huì)阻塞 DOM樹的構(gòu)建。這一點(diǎn)可以再Yahoo工程師的前端優(yōu)化方案里面看到)。

GUI事件觸發(fā)線程:

JavaScript腳本的執(zhí)行不影響html元素事件的觸發(fā),在Time1時(shí)間段內(nèi),用戶點(diǎn)擊鼠標(biāo)鍵,點(diǎn)擊事件被瀏覽器事件觸發(fā)線程捕捉后,形成一個(gè)鼠標(biāo)點(diǎn)擊事件,對(duì)于JavaScript引擎線程來說,這事件是由其它線程異步傳到任務(wù)隊(duì)列尾的,由于引擎正在處理 Time1 時(shí)的任務(wù),這個(gè)鼠標(biāo)點(diǎn)擊事件就會(huì)排隊(duì)。

定時(shí)觸發(fā)線程:

注意這里的瀏覽器模型定時(shí)計(jì)數(shù)器并不是由JavaScript引擎計(jì)數(shù)的,因?yàn)镴avaScript引擎是單線程的,如果處于阻塞線程狀態(tài)就不能計(jì)時(shí),它必須依賴外部來計(jì)時(shí)并觸發(fā)定時(shí),所以隊(duì)列中的定時(shí)事件也是異步事件。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:淺談JavaScript瀏覽器渲染機(jī)制以及定時(shí)機(jī)制
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲高清视频一区| 噜噜噜在线观看免费视频日韩| 亚洲视频国产视频| 欧美另类专区| 亚洲视频一区二区在线观看| 欧美日韩在线观看一区二区三区| 99国产一区| 红桃av永久久久| 欧美午夜片在线观看| 久久不射网站| 一本色道久久99精品综合| 国产一区二区三区直播精品电影 | 久久精品国产96久久久香蕉| 国产欧美午夜| 欧美日韩一区二区三区高清| 久久精品免费播放| 亚洲欧美日韩国产综合| 亚洲精品久久久久| 亚洲大片一区二区三区| 午夜精品一区二区三区在线视| 国产亚洲精品久久久久婷婷瑜伽| 欧美77777| 免费一级欧美片在线播放| 亚洲自拍高清| 一片黄亚洲嫩模| 亚洲免费黄色| 亚洲看片网站| 91久久精品一区| 亚洲黄色一区| 激情校园亚洲| 激情婷婷久久| 狠狠色狠狠色综合日日五| 国产美女在线精品免费观看| 亚洲视频在线播放| 激情久久久久久久久久久久久久久久 | 亚洲成在人线av| 国产一区二区三区在线观看免费视频| 欧美成人国产va精品日本一级| 亚洲视频在线观看三级| 在线欧美日韩| 亚洲人妖在线| 欧美一区二区观看视频| 亚洲欧美制服另类日韩| 久久久久国产精品厨房| 欧美在线免费一级片| 久久狠狠久久综合桃花| 久久综合精品一区| 免费日韩成人| 欧美日韩综合视频网址| 国产亚洲a∨片在线观看| 亚洲电影免费观看高清完整版在线| 伊人婷婷久久| 国产精品99久久久久久宅男| 西瓜成人精品人成网站| 蜜桃av一区二区在线观看| 欧美精品国产精品日韩精品| 欧美国产日本高清在线| 久久天天综合| 好吊日精品视频| 亚洲五月婷婷| 欧美人成在线视频| 狠狠综合久久| 午夜精品久久| 国产精品成人观看视频免费| 黄色在线成人| 亚洲永久免费精品| 欧美激情女人20p| 亚洲福利视频一区| 美女黄毛**国产精品啪啪| 国产精品嫩草影院一区二区| 妖精视频成人观看www| 久久综合九色99| 国产美女精品| 99热精品在线| 欧美精品乱人伦久久久久久| 一区二区三区在线看| 欧美一区中文字幕| 国产亚洲福利一区| 欧美在线观看网站| 国内综合精品午夜久久资源| 性欧美精品高清| 国产一区二区日韩精品欧美精品 | 国产精品va在线播放我和闺蜜| 亚洲免费电影在线观看| 欧美精品国产精品日韩精品| 亚洲黄色av| 国产精品成人一区二区| 最新亚洲视频| 国产真实精品久久二三区| 欧美在线视频一区二区| 亚洲精品视频在线观看网站 | 欧美成人dvd在线视频| 亚洲人午夜精品免费| 欧美日韩综合在线| 久久国产精品黑丝| 日韩视频二区| 亚洲精品网站在线播放gif| 欧美日韩美女在线观看| 欧美一区二区三区四区在线观看| 激情欧美日韩一区| 欧美四级剧情无删版影片| 久久青青草综合| 亚洲欧美视频一区二区三区| 在线 亚洲欧美在线综合一区| 欧美日韩一区在线| 久久国产精品黑丝| 亚洲欧美高清| 夜夜嗨av一区二区三区网站四季av| 国产精品青草综合久久久久99| 蜜桃久久精品乱码一区二区| 午夜精品一区二区三区在线播放| 国产日韩专区在线| 国产精品视频久久久| 欧美亚洲一级片| 日韩视频国产视频| 韩日精品视频| 国产有码一区二区| 国产美女在线精品免费观看| 国产午夜精品久久久久久久| 卡通动漫国产精品| 午夜亚洲福利在线老司机| 国产一区香蕉久久| 国产精品久久久久7777婷婷| 欧美日韩国产一区精品一区| 久久久久久精| 美乳少妇欧美精品| 亚洲午夜国产成人av电影男同| 亚洲精品久久嫩草网站秘色| 1000精品久久久久久久久| 亚洲电影免费观看高清完整版在线| 国产午夜精品在线| 亚洲国产精品视频一区| 欧美特黄一区| 99在线精品观看| 欧美日韩另类视频| 欧美日韩一区二区三区视频| 欧美日韩一区高清| 在线观看不卡| 亚洲欧美一区二区三区久久| 亚洲视频在线免费观看| 久久网站热最新地址| 欧美视频一区二区| 亚洲高清资源综合久久精品| 亚洲在线网站| 欧美色欧美亚洲另类七区| 亚洲国产另类久久久精品极度| 久久久久网站| 欧美激情免费在线| 一色屋精品视频在线观看网站| 日韩天堂av| 一区二区视频在线观看| 噜噜噜在线观看免费视频日韩| 国语精品中文字幕| 亚洲黄色小视频| 午夜日韩视频| 91久久久一线二线三线品牌| 欧美 日韩 国产在线| 亚洲国产精品美女| 老司机免费视频一区二区三区| 国产一区二区精品在线观看| 久久久久久电影| 一区二区三区毛片| 国产深夜精品| 久久精品国产清自在天天线| 一区二区精品| 亚洲国产91色在线| 欧美日韩在线播放三区| 久久亚洲精品一区二区| 久久大逼视频| 在线亚洲自拍| 136国产福利精品导航网址应用| 欧美图区在线视频| 欧美电影资源| 亚洲综合色在线| 亚洲欧美一区二区三区久久| 在线精品国产成人综合| 欧美午夜精品久久久久免费视 | 伊人成年综合电影网| 国产精品国产a级| 欧美人与性动交α欧美精品济南到| 在线日韩中文字幕| 嫩草伊人久久精品少妇av杨幂| 欧美黄色视屏| 欧美aⅴ99久久黑人专区| 免费短视频成人日韩| 欧美大片免费久久精品三p| 欧美在线视频a| 午夜精品偷拍| 欧美在线高清| 一本色道久久综合亚洲精品不卡| 国产亚洲人成a一在线v站| 国产精品区一区| 国产精品国产亚洲精品看不卡15| 欧美韩日视频| 欧美激情四色| 欧美丝袜一区二区| 国产精品视频你懂的| 一区二区三区在线不卡| 一本久久知道综合久久| 99在线精品视频|