日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

chrome

在從事前端開發過程中,瀏覽器作為最重要的開發環境,瀏覽器基礎是前端開發人員必須掌握的基礎知識點,它貫穿著前端的整個網絡體系。對瀏覽器原理的了解,也可以提高編寫前端代碼性能的上限。如果你是web前端開發人員那就來一起學習下谷歌瀏覽器的架構知識吧。

谷歌瀏覽器運行的時候會啟動四個主要進程:瀏覽器進程、GPU進程、第三方插件進程及渲染進程。

下面來一一介紹下四個主要進程的作用。

1.瀏覽器進程

Controls "chrome" part of the Application including address bar, bookmarks, back and forward buttons. Also handles the invisible, privileged parts of a web browser such as network requests and file access
(控制地址欄、書簽前進后退按鈕,標簽頁創建/銷毀、頁面顯示、網絡請求、資源管理下載)

  • GUI 渲染線程
    • html Parser 解析HTML文檔,將元素轉換為樹結構DOM節點
    • css Parser 解析Style數據,包括外部的CSS文件以及在HTML元素中的樣式,用于創建渲染樹
    • Layout 為每個節點計算出在屏幕中展示的準確坐標
    • Painting 遍歷渲染樹,調用UI Backend提供的接口繪制每個節點
  • JAVAScript 引擎線程
    • 解析JavaScript腳本,運行代碼 JS引擎一直等待著任務隊列中任務的到來,然后加以處理,一個Tab頁(renderer進程)中無論什么時候都只有一個JS線程在運行JS程序
    • GUI渲染線程與JS引擎線程互斥
      • 由于JavaScript是可操縱DOM的,如果在修改這些元素屬性同時渲染界面(即JS線程和GUI線程同時運行),那么渲染線程前后獲得的元素數據就可能不一致了。為了防止渲染出現不可預期的結果,瀏覽器設置GUI渲染線程與JS引擎為互斥的關系,當JS引擎執行時GUI線程會被掛起,GUI更新則會被保存在一個隊列中等到JS引擎線程空閑時立即被執行
  • 定時觸發器線程
    • setInterval與setTimeout所在線程
    • 定時計數器并不是由 JavaScript 引擎計數的(因為 JavaScript 引擎是單線程的, 如果處于阻塞線程狀態就會影響記計時的準確, 因此通過單獨線程來計時并觸發定時更為合理)
    • W3C在HTML標準中規定,規定要求setTimeout中低于4ms的時間間隔算為4ms
  • 事件觸發線程
    • 歸屬于瀏覽器而不是JS引擎,用來控制事件循環
    • 一個事件被觸發時該線程會把事件添加到待處理隊列的隊尾,等待 JavaScript 引擎的處理。
    • 這些事件可以是當前執行的代碼塊如定時任務(也可來自瀏覽器內核的其他線程如鼠標點擊、AJAX 異步請求等),會將對應任務添加到事件線程中
    • 由于 JavaScript 的單線程關系所有這些事件都得排隊等待 JavaScript 引擎處理。
  • http 異步請求線程
    • XMLHttpRequest 在連接后是通過瀏覽器新開一個線程請求, 將檢測到狀態變更時,如果設置有回調函數,異步線程就產生狀態變更事件放到 JavaScript 引擎的處理隊列中等待處理

2.GPU進程

Handles GPU tasks in isolation from other processes. It is separated into different process because GPUs handles requests from multiple apps and draw them in the same surface (處理來自其他進程的GPU任務。它被分為不同的進程,因為gpu處理來自多個應用程序的請求,并將它們繪制在同一個表面上)

3.第三方插件進程

Controls any plugins used by the website, for example, flash. 控制網站使用的任何插件,每個插件對應一個進程,當插件運行時創建

4.渲染進程(所說的"瀏覽器內核")

Controls anything inside of the tab where a website is displayed. 控制顯示網站的選項卡內的任何內容,默認每個標簽頁創建一個渲染引擎實例

以上就是谷歌瀏覽器主要進程的相關介紹,當然有一些其他進程,這里不再展開。

分享到:
標簽:架構
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定