1. 程式人生 > >WebKit 技術內幕之瀏覽器與WebKit核心

WebKit 技術內幕之瀏覽器與WebKit核心

微信公眾號:愛寫bugger的阿拉斯加
如有問題或建議,請後臺留言,我會盡力解決你的問題。

前言

此文章是我最近在看的【WebKit 技術內幕】一書的一些理解和做的筆記。
而【WebKit 技術內幕】是基於 WebKit 的 Chromium 專案的講解。

第一章 瀏覽器和瀏覽器核心

WebKit 核心是蘋果2005年先開發並提出開源的,後面 Google 也以此為基礎,並獨立開發出 Chromium 的,2008年 Google 為 WebKit 為核心建立了一個新專案 chormium ,後來 Google 的 chrom 佔領了瀏覽器的大部分市場。
WebKit
圖 1-6 顯示的是該專案的大模組。圖中“WebKit 嵌入式介面”就是批的狹義 WebKit,它批的是在 WebCore(包含上面提到的 HTML 直譯器、CSS 直譯器和佈局等模組)和 JavaScript 引擎之上的一層繫結和嵌入式程式設計介面,可以被瀏覽器呼叫。

WebKit2.png

2013年4月 gogle宣佈從 WebKit中複製一份出來然後獨立,並運作為Blink專案。

第二章 HTML網頁與結構

1. 基本組成 html 、css、js。

2. html5新特性 video、canvas、2d、3d等,2012年就推出。

3. 框結構: iframe、frame、frameset,用於嵌入html文件。

iframe.png
image.png

上面的圖說的是 iframe 的應用

4. 層次結構

理解層次結構非常重要,因為它可以幫忙你理解 WebKit 如何構建它來渲染,這有助於寫高效的 HTML 程式碼。

網頁的層次結構是指網頁中的元素可能分佈在不周的層次中,也就是說某些元素可以不同於它的父元素所在的層次,因為某些原因, WebKit 需要為該元素和它的子女建立一個新層。

image.png

圖中各層的前後關係。“ 根層 ” 在最後面,“ 層 3 ”和 “層 4 ” 在最前面。規律是需要複雜變換和處理的元素,它們需要新層,所以 WebKit 為它們構建新層其實是為了渲染引擎在處理上的方便和高效。對於不同的基於 WebKit 的瀏覽器,分層策略也有可能不一樣,通常是有一些基本原則的,比如 video 、2d、3d 轉換、canvas 等。

5. WebKit網頁核心的渲染過程

渲染過程.png

從網頁 URL 到構建 DOM 樹

img.png

從 CSS 和 DOM 樹到繪圖上下文.png

從繪圖上下文到最終的影象.png

繪圖過程說明.png

6. 編寫高效程式碼注意點

編寫高效程式碼注意點

6. 最後

希望本文對你有點幫助。

下期分享 第三章 WebKit 架構與模組 敬請期待。

對 全棧開發 有興趣的朋友可以掃下方二維碼關注我的公眾號 —— 愛寫bugger的阿拉斯加

分享 web 開發相關的技術文章,熱點資源,全棧程式設計師的成長之路。

陛下…看完奏摺,點個贊再走吧!

愛寫bugger的阿拉斯加

相關推薦

WebKit 技術內幕瀏覽器WebKit核心

微信公眾號:愛寫bugger的阿拉斯加 如有問題或建議,請後臺留言,我會盡力解決你的問題。 前言 此文章是我最近在看的【WebKit 技術內幕】一書的一些理解和做的筆記。 而【WebKit 技術內幕】是基於 WebKit 的 Chromi

深入理解Linux網路技術內幕——使用者空間核心空間互動

概述:     核心空間與使用者空間經常需要進行互動。舉個例子:當用戶空間使用一些配置命令如ifconfig或route時,核心處理程式就要響應這些處理請求。     使用者空間與核心有多種互動方式,

Spring Cloud技術分析DubboCloud的對比

現如今微服務架構十分流行,而採用微服務構建系統也會帶來更清晰的業務劃分和可擴充套件性。同時,支援微服務的技術棧也是多種多樣的,本系列文章主要介紹這些技術中的翹楚——Spring Cloud。這是序篇,主要講述我們為什麼選擇Spring Cloud和它的技術概覽。 1 為什麼微

Spring技術內幕(一)------理念架構

1.Spring的各個子專案認識 基於Spring4.x版本的常見模組介紹 1.1 Spring Framework(core) Spring Framework包含了一系列IOC容器的設計,提供了依賴反轉模式的實現;同時還集成了AOP功能.除外還包括Spring的基本模組如MVC,JDBC,事務處理模組的實

深入分析web技術內幕--web請求

1.B/S網路架構經歷了哪些過程? 使用者瀏覽器中輸入url(如www.baidu.com)。 url通過域名伺服器解析成對應的ip地址。 通過ip地址找到對應的伺服器,通常為get請求,伺服器端會將對應的請求資料返回給使用者。 總結:伺服器端會通過分散式快取系統,檔案

基於深度學習的圖像語義分割技術概述背景深度網絡架構

模糊 blank dog 像素 單獨 取出 rate 分類 底層 圖像語義分割正在逐漸成為計算機視覺及機器學習研究人員的研究熱點。大量應用需要精確、高效的分割機制,如:自動駕駛、室內導航、及虛擬/增強現實系統。這種需求與機器視覺方面的深度學習領域的目標一致,包括語義分割或場

基於深度學習的影象語義分割技術概述背景深度網路架構

本文為論文閱讀筆記,不當之處,敬請指正。  A Review on Deep Learning Techniques Applied to Semantic Segmentation: 原文連結 摘要 影象語義分割正在逐漸成為計算機視覺及機器學習研究人員的研究熱點。大

Spring技術內幕IOC容器的實現(01)-IOC容器初始化過程

Spring IOC容器的初始化過程 Spring IOC容器的初始化過程主要包括BeanDefinition的Resouce定位/載入/註冊三個基本過程。Spring把這三個過程的實現分別放在不同的模組下,通過這樣的設計方式可以使使用者更加靈活地對這個三個過程進行裁剪和自

Spring技術內幕Spring Data JPA-自定義Repository實現

1.自定義Repository方法介面,讓介面的實現類來繼承這個中間介面而不是Repository介面 package com.data.jpa.dao; import java.io.Serializable; import java.util.List; impor

Ajax技術使用ajax模態框結合的妙用

dism checkbox 學生 反序 路徑 highlight eth result ali Ajax技術使用之ajax與模態框結合的妙用 要求: 使用ajax的方式提交數據:https://www.cnblogs.com/-wenli/p/10470063.h

《大型網站技術架構核心原理案例分析》讀書筆記

      架構!對於工作經驗尚淺的我是理應遠遠不用考慮的倆字。不過就像這本書所說到的一個好的網站架構體系,不僅僅是架構師個人的架構,而是和參與共同建設的人共同貢獻,讓參與的人覺得自己是架構體系的建設者之一,就越是自動承擔開發過程的責任和共同維護架構和改善軟體。  

《深入分析JavaWeb技術內幕 12-Spring架構設計模式

    core context bean(bean工廠,bean定義,bean解析)   bean(bean工廠,bean定義,bean解析)     

《深入分析JavaWeb技術內幕 11-Tomcat系統架構設計模式

1、 分發請求 2 、同時請求 3、 多級容器 4、 設計模式 Tomcat的組織結構 https://www.cnblogs.com/zhouyuqin/p/5143121.html   Tomcat Server處理一個HTTP請求的

《深入分析JavaWeb技術內幕 10-SessionCookie

session與cookie     通過 返回的JsessionID 建立 session物件 查詢已經存在的session如果沒有就新建 session   standard manager管理session生命

《深入分析JavaWeb技術內幕 15-iBatis系統架構對映原理

關鍵詞: 對映、 反射                              &

《深入分析JavaWeb技術內幕 14-SpringMVC工作機制設計模式

 dispacherservlet初始化邏輯   handlerMapping            &nbs

通過meta程式碼強制瀏覽器使用WebKit核心

國產瀏覽器大多是雙核心,甚至是三核心。 一個Chromium核心,也就是Chrome使用的核心,切換到這個核心的模式一般叫極速模式; 一個IE核心,稱之為IE模式; 有的甚至還有一個修改過的IE核心,稱之為相容模式。 這些瀏覽器這樣做的原因是國內還有大量為IE瀏覽器量身定做的網站,

瀏覽器前世今生技術內幕大揭祕

目錄 1.從瀏覽器UA角度看瀏覽器前世今生 1.1 你是否好奇標識瀏覽器身份的User-Agent,為什麼每個瀏覽器都有Mozilla字樣? 1.2 國產外殼瀏覽器現狀比較研究 2.渲染引擎WebKit 2.1 WebKit結構介紹 2.2 理解WebKi

《Spring技術內幕:深入解析Spring架構設計原理》筆記六(Spring事務處理的實現)

1.Spring與事務處理有了Spring事務管理的支援,只需要通過一些簡單的配置,應用就能完成複雜的事務處理工作,從而為使用者使用事務處理提供很大的方便。2.Spring事務處理的設計概覽Spring事務處理模組中的類層次結構在Spring事務處理中,可以通過設計一個Tra

[WebKit] JavaScriptCore解析--基礎篇(二)直譯器基礎JSC核心元件

這一篇主要說明直譯器的基本工作過程和JSC的核心元件的實現。 作為一個語言,就像人在的平時交流時一樣,當接收到資訊後,包含兩個過程:先理解再行動。理解的過程就是語言解析的過程,行動就是根據解析的結果執行對應的行為。在計算機領域,理解就是編譯或解釋,這個已經被研究的很透徹了