精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

瀏覽器底層工作那些事兒

開發(fā) 前端
css 布局分為絕對(duì)定位和相對(duì)定位,絕對(duì)定位根據(jù)指定位置進(jìn)行渲染,而相對(duì)定位則是根據(jù)其他元素的位置進(jìn)行布局。

瀏覽器已經(jīng)成為我每天都需要打交道的工具,然而對(duì)于這個(gè)我們的老朋友,即使一些 web 開發(fā)人員也對(duì)它的底層工作原理不是非常清楚,今天我們就來簡單談一談瀏覽器的底層工作原理。

瀏覽器的主要功能

如果非要用一句話來概括瀏覽器的功能,那么瀏覽器就是一個(gè)請(qǐng)求資源,然后顯示資源的軟件。

這里的資源主要就是我們經(jīng)常提到的 html,css,js,還有圖片等。

瀏覽器共有的接口:

  • 地址欄
  • 前進(jìn)后退按鈕
  • 刷新按鈕
  • 主頁按鈕
  • 收藏按鈕

通過這些接口我們就基本掌握了瀏覽器的基本操作。

瀏覽器的架構(gòu)

瀏覽器對(duì)外表現(xiàn)就是一個(gè)內(nèi)容展示的容器,但是內(nèi)部它卻由很多組件組成。

  • 用戶接口(我們前面提到的那些公用操作接口)
  • 瀏覽器引擎(UI 和渲染引擎的封裝)
  • 渲染引擎(負(fù)責(zé)顯示請(qǐng)求的內(nèi)容,根據(jù) css 和 html 顯示內(nèi)容布局)
  • 網(wǎng)絡(luò)引擎(負(fù)責(zé) http 請(qǐng)求,負(fù)責(zé)網(wǎng)絡(luò)管理)
  • UI 引擎(負(fù)責(zé)繪制基本 html 元素,比如下拉框,輸入框等)
  • js 解析引擎(解析和執(zhí)行 JavaScript 代碼)
  • 數(shù)據(jù)存儲(chǔ)引擎(存儲(chǔ) cookie,localStorage,IndexedDB,websql 等數(shù)據(jù))

其中渲染引擎可以說是最重要的一部分,它一般決定著用戶看到網(wǎng)頁加載體驗(yàn)。

圖片

不同的瀏覽器使用不同的渲染引擎,之前的 IE 使用的是 Trident,F(xiàn)irefox 使用 Gecko,Chrome 使用 WebKit 等,目前現(xiàn)在基本都使用 Blink 引擎。

渲染引擎的工作流程大致是這樣的。

首選它獲取到請(qǐng)求到的內(nèi)容,然后開始解析 html 結(jié)構(gòu),將它們轉(zhuǎn)換成 dom 樹,然后渲染引擎解析 css 樣式,生成一個(gè) css 樹,最后,根據(jù)樣式信息和 html 結(jié)構(gòu)生成 render 樹,我們稱之為渲染樹。

渲染樹主要包含了顏色,尺寸等視覺信息。構(gòu)建渲染樹之后,渲染樹的每個(gè)節(jié)點(diǎn)將會(huì)經(jīng)歷布局,找到在屏幕上的坐標(biāo)。然后 UI 引擎會(huì)繪制各個(gè)節(jié)點(diǎn)。

渲染樹的構(gòu)建是漸進(jìn)的,它會(huì)根據(jù)結(jié)構(gòu)一點(diǎn)點(diǎn)處理,盡量在屏幕上快速顯示部分內(nèi)容。

對(duì)于解析它主要包括兩部分,一部分是詞法分析,一部分是語法分析。

詞法分析,主要是按照詞匯表進(jìn)行分析標(biāo)記,構(gòu)建塊的集合。

語法分析,主要是根據(jù)詞法規(guī)則構(gòu)建解析樹的解析器。

HTML 解析

html 的標(biāo)記和語法都是被定義好的,因此在解析的時(shí)候只要按照規(guī)則即可。

html 文檔格式是 DTD,它是一個(gè)上下文無關(guān)的文檔格式。它更加寬容,可以省略一些標(biāo)記,因此解析器處理起來會(huì)很復(fù)雜。

圖片

dom 樹是由 dom 元素和屬性構(gòu)成的樹形結(jié)構(gòu)。其中 dom 和 html 中的標(biāo)記是對(duì)應(yīng)的。

<html>
<body>
<p> Hello World </p>
<div>
<img src="example.png"/>
</div>
</body>
<html>

html 結(jié)構(gòu)不能采用常規(guī)的自頂向下或者自底向上的解析器進(jìn)行解析,因此它需要采用自定義的解析器進(jìn)行解析,通過標(biāo)記法和樹構(gòu)造進(jìn)行解析。

例如,將初始狀態(tài)標(biāo)記為數(shù)據(jù)狀態(tài),然后從<開始進(jìn)行標(biāo)記,遇到 a-z 創(chuàng)建令牌,標(biāo)記為 tag open 狀態(tài),直到遇到>,狀態(tài)變回?cái)?shù)據(jù)狀態(tài)。

圖片

在創(chuàng)建解析器的時(shí)候,會(huì)創(chuàng)建文檔對(duì)象,在解析樹構(gòu)造的時(shí)候,會(huì)向 dom 樹添加元素。

標(biāo)記法標(biāo)記的節(jié)點(diǎn)會(huì)由解析樹的構(gòu)造函數(shù)進(jìn)行處理。當(dāng)元素被添加到 dom 樹的時(shí)候,也會(huì)被添加到堆棧中。

在解析 dom 樹的時(shí)候,js 引擎也會(huì)解析 js 腳本,dom 解析后,這些腳本會(huì)執(zhí)行。

解析樹是具有包容性的,當(dāng)遇到一些錯(cuò)誤的時(shí)候,它只會(huì)內(nèi)部進(jìn)行標(biāo)記,并不會(huì)報(bào)錯(cuò)給用戶。

css 解析

WebKit 引擎使用 Flex 和 Bison 解析器生成器從 CSS 語法文件自動(dòng)創(chuàng)建解析器。Bison 創(chuàng)建了一個(gè)自底向上的 shift-reduce 解析器。每個(gè) CSS 文件都被解析為一個(gè)樣式表對(duì)象。每個(gè)對(duì)象都包含 CSS 規(guī)則。CSS 規(guī)則對(duì)象包含選擇器和聲明對(duì)象以及與 CSS 語法相對(duì)應(yīng)的其他對(duì)象。

圖片

在之前的時(shí)候,web 模型是同步的,解析器需要獲取資源,然后才能繼續(xù)解析。目前是一個(gè)線程進(jìn)行解析,一個(gè)線程用來獲取文檔剩下需要加載的資源文件。

構(gòu)建渲染樹需要計(jì)算每個(gè)渲染對(duì)象的視覺特性。這是通過計(jì)算每個(gè)元素的樣式特性來完成的。該樣式包括各種來源的樣式表,內(nèi)聯(lián)樣式和 html 中的視覺屬性。

圖片

樣式計(jì)算是非常復(fù)雜的,如果設(shè)計(jì)不佳的話,就會(huì)導(dǎo)致占用過多內(nèi)存,因此很多瀏覽器采用通過添加規(guī)則樹和上下文樹來優(yōu)化樣式計(jì)算。

頁面布局

在創(chuàng)建渲染器的時(shí)候,它沒有位置和大小,然后我們需要計(jì)算它的位置和大小,這個(gè)過程被稱為頁面布局或者說叫做頁面回流。

圖片

布局是一個(gè)遞歸過程,它從根渲染器開始,根據(jù)層次結(jié)構(gòu)遞歸的遍歷每個(gè)渲染器,然后計(jì)算它們的集合信息,最后布局它們。

布局分為全量布局和增量布局。所謂全量布局指的就是會(huì)影響所有渲染器的全局樣式改變,比如字體改變。而增量布局指的是布局是異步完成的,渲染器通過觸發(fā)器進(jìn)行布局。

css 主要是通過盒子模型來布局。每個(gè)盒子都有一個(gè)內(nèi)容區(qū)域和可選的周圍區(qū)域,比如邊框,邊距。其中有些盒子是塊狀模型,有些是行內(nèi)模型。

css 布局分為絕對(duì)定位和相對(duì)定位,絕對(duì)定位根據(jù)指定位置進(jìn)行渲染,而相對(duì)定位則是根據(jù)其他元素的位置進(jìn)行布局。

責(zé)任編輯:武曉燕 來源: 程序那些事兒
相關(guān)推薦

2012-12-06 14:34:16

2013-07-09 13:50:05

2010-08-17 09:06:06

IE瀏覽器

2021-02-01 14:17:53

裝飾器外層函數(shù)里層函數(shù)

2013-11-20 13:47:43

瀏覽器渲染引擎

2012-02-01 13:42:19

2014-08-22 13:45:59

2012-03-20 11:31:58

移動(dòng)瀏覽器

2012-03-19 17:25:22

2012-03-20 11:41:18

海豚瀏覽器

2012-03-20 11:07:08

2010-04-05 21:57:14

Netscape瀏覽器

2012-06-21 15:38:02

獵豹瀏覽器

2012-03-19 17:17:00

移動(dòng)瀏覽器歐朋

2012-03-20 11:22:02

QQ手機(jī)瀏覽器

2022-12-26 23:38:10

瀏覽器擴(kuò)展工具

2021-06-09 13:28:40

密碼安全身份認(rèn)證數(shù)據(jù)安全

2013-12-26 14:23:03

定位系統(tǒng)GPS監(jiān)測(cè)

2014-02-14 09:28:55

數(shù)據(jù)中心日常維護(hù)

2022-02-08 17:39:04

MySQL服務(wù)器存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品jk白丝蜜臀av小说| 久久综合伊人77777麻豆| 亚洲va韩国va欧美va精四季| 久久久久亚洲av片无码下载蜜桃| 国内精品在线视频| 一区二区三区视频播放| 中文字幕av在线一区二区三区| 韩国日本不卡在线| 色姑娘综合天天| 日本最黄一级片免费在线| 免费日韩av片| 亚洲国产一区自拍| 国产精品免费看久久久无码| 伊人精品在线视频| 成人羞羞网站入口免费| 日本韩国精品在线| 欧美日韩一区在线视频| wwwwww国产| 丝袜久久网站| 欧美日韩国产在线看| 国产精品香蕉视屏| 久久久久久国产精品视频| 天海翼精品一区二区三区| 91精品国产综合久久精品图片 | 91麻豆国产自产在线观看| 欧美成人手机在线| 三日本三级少妇三级99| 91精品国产91久久久久久青草| 国产综合色在线视频区| 精品视频中文字幕| 欧美国产亚洲一区| 深夜福利在线看| 噜噜噜91成人网| 尤物九九久久国产精品的分类| 在线视频日韩一区| avav免费在线观看| 精品系列免费在线观看| 日韩av电影国产| 美国精品一区二区| 国语精品视频| 亚洲www啪成人一区二区麻豆 | 欧美顶级毛片在线播放| 欧美日韩免费一区| 国产成人在线小视频| 欧美一区二区公司| 免费日韩一区二区| 久久免费视频在线观看| 成人精品在线观看视频| 免费欧美电影| 亚洲欧美视频一区| 国偷自产av一区二区三区小尤奈| 天天操夜夜操视频| 一区二区福利| 中文字幕亚洲综合久久| 中文字幕在线视频一区二区三区| aaaa欧美| 亚洲va国产天堂va久久en| 人妻无码一区二区三区四区| 中文字幕有码在线观看| 亚洲精品伦理在线| 欧美久久久久久久| 欧美成熟毛茸茸| 国内成人自拍视频| 亚洲精品欧美日韩| 欧美一区二区三区不卡视频| 性欧美欧美巨大69| 日韩激情av在线播放| 日韩一级免费片| 9765激情中文在线| 自拍偷拍亚洲欧美日韩| 免费av在线一区二区| 人操人视频在线观看| 国产一区二区三区av电影 | 中文字幕乱码一区二区| 男女激情视频一区| 午夜精品国产精品大乳美女| 日韩欧美三级视频| 888久久久| 久久69精品久久久久久久电影好 | 国产91麻豆视频| 日韩国产高清影视| 欧美激情综合色综合啪啪五月| 久久久视频6r| 久久久久97| 日韩女优制服丝袜电影| 鲁一鲁一鲁一鲁一av| 国内精品视频| 欧美三级韩国三级日本一级| 成人在线免费观看av| 日本高清在线观看视频| 国产精品人妖ts系列视频| 欧美日韩一区二区视频在线观看 | 久久精品视频在线免费观看| 亚洲精品免费在线视频| 欧美视频一二区| 国产日产精品一区| 久草精品电影| 亚洲精品国偷拍自产在线观看蜜桃| 久久精品国产精品亚洲综合| 国产成人欧美在线观看| 日韩精品在线免费视频| 亚洲高清电影| 久久久久久中文| 精品无码一区二区三区的天堂| 久久国产高清| 91传媒在线免费观看| www.色日本| 国产精品一区二区果冻传媒| 91欧美精品午夜性色福利在线 | 99久久精品久久亚洲精品| 免费看黄色三级| 91国产免费视频| 日韩不卡在线观看日韩不卡视频| 91精品久久久久久久久久久| 这里只有精品国产| 久久蜜桃精品| 国产精品久久久久久久久免费看| 免费在线不卡视频| 国产一区二区三区在线观看免费视频 | 激情五月播播久久久精品| 久久精品日韩精品| 伊人福利在线| 欧美一区二区三区在线观看视频| 中字幕一区二区三区乱码| 亚洲欧洲视频| 91精品国产色综合| 草久久免费视频| 国产精品一区免费在线观看| 亚洲乱码国产乱码精品天美传媒| 免费大片在线观看www| 亚洲欧美在线视频观看| 亚洲成色www.777999| 欧美亚洲大陆| 91精品国产免费久久久久久 | 97精品国产99久久久久久免费| 亚洲国产天堂久久综合| 精品在线视频免费观看| 国产精一区二区三区| 一区二区在线观看网站| 中文字幕中文字幕在线中高清免费版| 欧美无乱码久久久免费午夜一区| 911福利视频| a级日韩大片| 亚洲欧美国产va在线影院| 丁香六月激情综合| 日韩精品亚洲一区| 欧美在线视频一区二区三区| 欧美三级黄网| 欧美日韩在线免费视频| 久久久久亚洲AV成人无在| 亚洲蜜桃视频| 7m精品福利视频导航| 蜜臀久久精品久久久久| 亚洲国产成人精品视频| 最近免费中文字幕中文高清百度| 羞羞视频在线观看一区二区| 亚洲的天堂在线中文字幕| 69精品无码成人久久久久久| 老牛国产精品一区的观看方式 | 999久久久91| 久久久久女教师免费一区| 精品乱子伦一区二区| 亚洲综合成人在线| 九九热免费精品视频| 欧美美女在线观看| 九九热视频这里只有精品| 精品久久久中文字幕人妻| 亚洲午夜激情网站| 亚洲一区在线不卡| 蜜桃一区av| 欧美性受xxx| 国产成人免费看一级大黄| 国产日韩欧美不卡| 中文字幕av不卡在线| 亚洲成人最新网站| 国产日产精品一区二区三区四区| 亚洲欧美电影| 亚洲国产精品99| 天天干天天干天天| 国产精品全国免费观看高清| 特黄特色免费视频| 国产精品成人av| 日韩av不卡在线| 日本中文字幕在线看| 91麻豆精品国产91| 国产不卡在线观看视频| 国产一区二区三区久久久| 精品久久一二三| 一本色道69色精品综合久久| 2019中文字幕在线| 免费网站成人| 日韩av在线一区二区| 中文字幕av网站| 亚洲一二三四区不卡| xxxx日本黄色| 高清不卡一区二区在线| 男女爱爱视频网站| 亚洲老司机网| 久久精品成人欧美大片古装| 中文字幕 国产| 亚洲一区二区三区激情| 国产视频三区四区| 成人av网站在线观看免费| 韩国无码av片在线观看网站| 亚洲美女15p| 欧美一级黄色网| 九七电影韩国女主播在线观看| 欧美猛男男办公室激情| 伊人久久久久久久久久久久久久| 日本视频一区二区三区| 色就是色欧美| 成人h动漫免费观看网站| 国产精品男人的天堂| 国产高清视频色在线www| 日韩电影免费在线观看中文字幕| 一区二区久久精品66国产精品| 精品成人国产在线观看男人呻吟| 波多野结衣影院| 香蕉久久夜色精品| 日韩欧美一级在线| 成人中文字幕视频| 国产免费亚洲高清| 精品国产丝袜高跟鞋| 日韩精品在线免费| 亚洲精品久久久蜜桃动漫| 欧美日韩免费视频| 国产天堂av在线| 国产不卡视频在线观看| 中文字幕 91| 喷水一区二区三区| av丝袜天堂网| 亚洲最大黄网| 亚洲精品8mav| 成人在线电影在线观看视频| 日本一区二区三区四区高清视频| 女仆av观看一区| 97伦理在线四区| 中文字幕亚洲在线观看| av噜噜色噜噜久久| 在线天堂新版最新版在线8| 国内精品伊人久久| 男女视频在线| 国产小视频国产精品| 国产乱淫片视频| 午夜久久久久久久久| 欧美成人一二三区| 久久婷婷成人综合色| 欧美wwwwwww| 麻豆一区二区在线| 色天使在线观看| 久久69国产一区二区蜜臀| 欧美 日韩 国产 高清| 亚洲日本黄色| 欧美 国产 综合| 久久久久中文| 奇米影音第四色| 精品系列免费在线观看| 激情在线观看视频| 成人在线综合网| 无尽裸体动漫2d在线观看| 久久精品国产99| www.久久com| 丁香天五香天堂综合| 一级国产黄色片| 国产日产欧产精品推荐色| 男女全黄做爰文章| 亚洲精品视频免费观看| 日本xxxx裸体xxxx| 久久久天堂av| 熟女av一区二区| 一区二区三区不卡视频在线观看| 日韩乱码一区二区| 亚洲男人的天堂av| 国产一级性生活| 亚洲天天做日日做天天谢日日欢| 中文字幕影音先锋| 欧美色欧美亚洲高清在线视频| 希岛爱理中文字幕| 亚洲国产成人精品视频| 无码人妻精品一区二区三区蜜桃91| 亚洲综合av网| 日批视频免费在线观看| 欧美精品少妇一区二区三区| 性色av蜜臀av| 亚洲欧美资源在线| 亚洲精品久久久久久久久久 | 91精品国产高清久久久久久91裸体| 中文字幕一区图| 色播亚洲婷婷| 国产精品草草| 最新av网址在线观看| 中文精品视频| 看一级黄色录像| 国产日韩精品视频一区二区三区| 色综合色综合色综合色综合| 99久久久久久| 大尺度做爰床戏呻吟舒畅| 国产福利一区二区| 欧洲在线免费视频| av在线不卡电影| 少妇高潮一区二区三区喷水| 欧美日韩另类在线| 国产伦精品一区二区三区视频痴汉 | 国产精品∨欧美精品v日韩精品| 国产一区二区三区| 日韩经典在线视频| 国产剧情在线观看一区| 欧美男人的天堂| 欧美fxxxxxx另类| 国产女教师bbwbbwbbw| 日韩电影免费在线观看网站| 久久精品aⅴ无码中文字字幕重口| 国产999精品久久| 欧美丰满老妇熟乱xxxxyyy| 性做久久久久久久久| 国产精品玖玖玖| 国产亚洲精品久久久久久777| www.综合网.com| 97视频中文字幕| 五月综合激情| 伊人国产在线视频| 久久精品综合网| 久久国产黄色片| 日韩电影第一页| 超碰在线视屏| 国产乱码精品一区二区三区中文| 中文乱码免费一区二区三区下载| 久久婷五月综合| 国产精品乱码人人做人人爱| 无码任你躁久久久久久久| 亚洲欧美国产va在线影院| 国产美女高潮在线| 精品欧美日韩在线| 最新精品国偷自产在线| 欧美亚洲色图视频| 国产精品77777竹菊影视小说| 26uuu成人网| 日韩一卡二卡三卡| 污污视频在线免费看| 亚洲天堂一区二区三区| 午夜裸体女人视频网站在线观看| 国产伦精品一区二区三区视频黑人| 欧美一区二区三区久久精品| 亚洲第一成肉网| 亚洲精品videosex极品| 国内精品久久久久久久久久| 欧美日韩aaaa| 国产精品网站在线看| www插插插无码视频网站| 日本美女视频一区二区| 亚洲精品国产91| 欧洲精品中文字幕| 亚洲伦理在线观看| 欧美日韩高清在线观看| 99香蕉久久| 国产一区二区网| 国产亚洲欧美激情| 中国精品一区二区| 日韩视频在线观看免费| 性国裸体高清亚洲| 蜜桃999成人看片在线观看| 六月丁香综合| 欧美xxxooo| 日韩视频一区二区三区在线播放 | 深夜福利免费在线观看| 日本乱人伦a精品| 999视频精品| 亚洲少妇一区二区三区| 精品美女久久久久久免费| 国产中文字幕在线视频| 国产美女主播一区| 欧美视频官网| 182午夜在线观看| 亚洲精品成人精品456| 日韩在线一区二区三区四区| 欧美在线国产精品| 日韩精品一区二区三区免费视频| 日产精品高清视频免费| 毛片一区二区三区| 久久国产露脸精品国产| 欧美日韩成人综合| 中中文字幕av在线| 欧美日韩一区综合| 国产一区二区三区在线观看免费视频| 日韩欧美视频在线免费观看| 国产一区二区三区视频免费| 日本伊人久久| 亚洲乱码中文字幕久久孕妇黑人| 成人午夜免费电影| 四虎成人在线观看| 欧美www在线| 国内精品久久久久久久影视简单 | 欧美黑人一区二区三区| 精品亚洲a∨| 日韩精品一区二区三区丰满 | 欧美无砖砖区免费| 国产三线在线| 国产高清不卡av| 伊人成人在线| аⅴ天堂中文在线网|