瀏覽器工做原理與實踐學習筆記(一)--chrome架構

筆記說明前端

瀏覽器工做原理與實踐是李兵【前盛大創新院高級研究員】在極客時間開的一個專欄,透過瀏覽器看懂前端本質, 筆者主要整理學習過程的一些要點筆記以及感悟,完整的能夠加入李兵老師的專欄學習。 chrome

1、chrome 僅僅打開一個頁面,爲何會有4個進程?

在回答這個問題以前, 李兵老師先詳細的講解了進程和線程的區別,在此附上我對老師講解內容的整理瀏覽器

  1. 進程和線程 安全

  2. 單進程瀏覽器、多進程瀏覽器bash

因此最新的 Chrome 瀏覽器包括:網絡

  1. 瀏覽器進程: 主要負責界面顯示、用戶交互、子進程管理,同時提供存儲等功能
  2. GPU進程:網頁、Chrome 的 UI 界面都選擇採用 GPU 來繪製。
  3. 網絡進程:面向渲染進程和瀏覽器進程等提供網絡下載功能。
  4. 渲染進程:把從網絡下載的 HTML、JavaScript、CSS、圖片等資源解析爲能夠顯示和交互的頁面
  5. 多個插件進程

由於渲染進程的內容是經過網絡獲取的,獲取的文件可能會存在惡意代碼,這些代碼是不安全不被信任的。因此渲染進程是運行在安全沙箱裏的。 學習

這也就解釋了爲何打開一個頁面 chrome會出現4個進程。若是頁面中嵌有iframe,而且這些iframe域名不一樣,渲染進程的數量也會相應增長。spa

「同一站點」定義爲根域名(例如,geekbang.org)加上協議(例如,https:// 或者 http://),還包含了該根域名下的全部子域名和不一樣的端口,好比下面這三個:插件

https://time.geekbang.org
https://www.geekbang.org
https://www.geekbang.org:8080
// 它們都是屬於同一站點,由於它們的協議都是 HTTPS,並且根域名也都是 geekbang.org。
複製代碼

一般狀況下,一個頁面使用一個進程(每一個標籤都會有本身的渲染進程),可是有些狀況下(從A頁面打開了一個新的頁面B頁面,並且A,B頁面恰巧屬於同一站點,B頁面就會複用A頁面的渲染進程,也就是說他們是在同一個渲染進程),就會致使一個頁面崩潰,同一站點的其餘頁面也會崩潰。因此即便是現在的多進程瀏覽器 也會出現一個頁面崩潰卡死最終致使多個頁面卡死 線程

相關文章
相關標籤/搜索