一起了解瀏覽器(知己知彼)

一、瀏覽器的進程

在瀏覽器中打開一個網(wǎng)頁蘸泻,相當于新起一個進程琉苇,進程內(nèi)有自己的多線程。

如果是單線程悦施,那么某個tab頁奔潰了并扇,就影響整個瀏覽器,體驗差抡诞。所以瀏覽器是多線程的穷蛹。

二、瀏覽器的內(nèi)核(渲染進程)

頁面渲染昼汗、js的執(zhí)行肴熏、事件的循環(huán)都在這個進程進行。

瀏覽器的渲染進程是多線程的顷窒。

包含哪些線程呢蛙吏?

1、GUI渲染線程

? ? .?=>負責渲染瀏覽器界面鞋吉,解析HTML出刷、css、構(gòu)建dom樹和renderObject樹坯辩、布局馁龟、繪制等;

? ? .?=>當界面需要重繪(repaint)或由于某種操作引發(fā)回流(reflow)時漆魔,該線程就會執(zhí)行坷檩;

? ? .?=>GUI渲染線程與js引擎線程是互斥的:當js引擎執(zhí)行時却音,GUI線程會被掛起(相當于被凍結(jié)了),GUI更新會被保存在一個列隊中矢炼,等到js引擎空閑時立即被執(zhí)行

2系瓢、js引擎線程

? . => js內(nèi)核負責處理JavaScript腳本程序

? ??.=>js引擎線程負責解析JavaScript腳本,運行代碼

? ??.=>js引擎一直等待著任務列隊中任務的到來句灌,然后加以處理夷陋。一個tab頁(render進程)中無論什么時候都只有一個js線程運行js程序

? ? ?.=>同樣注意,CUI渲染線程與js引擎線程是互斥的胰锌。所以如果js執(zhí)行時間過長骗绕,這樣就會造成頁面的渲染不連貫,導致頁面渲染加載阻塞资昧。

3酬土、事件觸發(fā)線程

? ? .?=>事件觸發(fā)線程歸屬于瀏覽器而不是js引擎。用來控制事件的循環(huán)格带〕方桑可以理解為:js引擎忙不過來,需要瀏覽器另開線程來協(xié)助叽唱。

? ? .?=>當js引擎執(zhí)行代碼如setTimeout時(也可來自瀏覽器內(nèi)核的其他線程屈呕,如鼠標點擊、ajax異步請求等)棺亭,將會對應任務添加到事件線程中虎眨。

? ? .?=>對對應的事件符合條件被觸發(fā)時,該線程會把事件添加到待處理隊列尾部侦铜,當代js引擎處理

? ? .?=>JS單線程關(guān)系,待處理隊列中的事件都是排隊钟鸵。等待js引擎處理js引起空閑才會去執(zhí)行

4钉稍、定時器觸發(fā)線程

? .?=>傳說中的setInerval 與 setTimeout 所在的線程

?? .?=> 瀏覽器定時器計數(shù)器并不是由js引擎計數(shù)的(因為js引擎是單線程的,如果處于阻塞狀態(tài)就會影響計時的準確性)

? .?=>因此棺耍,通過單線程來計時并觸發(fā)定時(計時完畢后添加到事件列隊中贡未,等待js引擎空閑后執(zhí)行)

? .?=>W3C在HTML標準中規(guī)定,需要setTimeout中低于4ms的時間間隔算為4ms

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒙袍,一起剝皮案震驚了整個濱河市俊卤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌害幅,老刑警劉巖消恍,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異以现,居然都是意外死亡狠怨,警方通過查閱死者的電腦和手機约啊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佣赖,“玉大人恰矩,你說我怎么就攤上這事≡鞲颍” “怎么了外傅?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長俩檬。 經(jīng)常有香客問我萎胰,道長,這世上最難降的妖魔是什么豆胸? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任奥洼,我火速辦了婚禮,結(jié)果婚禮上晚胡,老公的妹妹穿的比我還像新娘灵奖。我一直安慰自己,他們只是感情好估盘,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布瓷患。 她就那樣靜靜地躺著,像睡著了一般遣妥。 火紅的嫁衣襯著肌膚如雪擅编。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天箫踩,我揣著相機與錄音爱态,去河邊找鬼。 笑死境钟,一個胖子當著我的面吹牛锦担,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播慨削,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼洞渔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缚态?” 一聲冷哼從身側(cè)響起磁椒,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玫芦,沒想到半個月后浆熔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡桥帆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年蘸拔,在試婚紗的時候發(fā)現(xiàn)自己被綠了师郑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡调窍,死狀恐怖宝冕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邓萨,我是刑警寧澤地梨,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站缔恳,受9級特大地震影響宝剖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜歉甚,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一万细、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纸泄,春花似錦赖钞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至衡便,卻和暖如春献起,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背镣陕。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工谴餐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呆抑。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓岂嗓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親理肺。 傳聞我的和親對象是個殘疾皇子摄闸,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容