精品欧美一区二区三区在线观看 _久久久久国色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)

久久午夜夜伦鲁鲁片| 中国女人做爰视频| 中文字幕一区二区免费| 91国语精品自产拍| 精品国产乱码久久久久久影片| 少妇人妻无码专区视频| 国产日产精品久久久久久婷婷| 久久99国产精品久久99果冻传媒| 欧美激情亚洲视频| 欧美老女人性生活视频| 一区二区精彩视频| 欧亚一区二区三区| 久久福利一区二区| 91大神在线网站| 成人av网站在线观看免费| 国产精品免费视频久久久| 久久久www成人免费毛片| 国产麻豆精品久久| 精品国产3级a| 在线视频日韩欧美| 97欧美成人| 天天射综合影视| 国产精品国产三级国产专区51| 男同在线观看| 成人免费毛片嘿嘿连载视频| 国产日韩一区在线| 亚洲大片免费观看| 国产91久久久| 国产精品久久久久久久久免费高清| 亚洲色图一区二区三区| 日本一区二区三区免费看| 国精产品一品二品国精品69xx| 美国毛片一区二区| 日本精品视频网站| 日本一区二区三区四区五区| 午夜国产一区二区| 一本色道久久综合亚洲精品小说| 亚洲调教欧美在线| 亚洲无线观看| 欧美成人艳星乳罩| 一个人看的视频www| 国产香蕉久久| 欧美三级电影在线看| 国产xxxxx视频| 成人天堂yy6080亚洲高清| 精品福利视频导航| 婷婷无套内射影院| 肉肉视频在线观看| 一区二区三区四区五区视频在线观看| 日本黄色a视频| 毛片av在线| 亚洲欧洲日韩在线| 亚洲午夜精品一区二区三区| 波多野结衣在线影院| 久久精品视频免费| 美女久久一区| 亚洲欧美一区二区三区情侣bbw| 亚洲图片欧美另类| 999久久久精品一区二区| 日韩午夜小视频| 国产男女无遮挡猛进猛出| 白嫩亚洲一区二区三区| 欧美精品一卡两卡| 日韩av加勒比| youjizz欧美| 日韩国产激情在线| 三级黄色片网站| 久久99国产精一区二区三区| 亚洲欧美在线免费| 免费视频91蜜桃| 欧美好骚综合网| 亚洲精品国产第一综合99久久| 五月天亚洲综合情| 欧美日韩在线看片| 一区二区三区久久| 欧美精品在欧美一区二区| 天天色天天射天天综合网| 亚洲超丰满肉感bbw| 又粗又黑又大的吊av| 在线手机中文字幕| 欧美日韩一级二级| 在线观看一区二区三区视频| 久久国产精品免费精品3p| 亚洲欧洲国产伦综合| 国产在视频线精品视频| 欧美另类综合| 欧美在线一级va免费观看| 高潮无码精品色欲av午夜福利| 国产一区二区在线电影| 精品久久久久久一区二区里番| 国产三级在线观看| 亚洲精品成人精品456| 欧美综合在线播放| 欧美黑粗硬大| 亚洲成av人片在线观看香蕉| 呦呦视频在线观看| 日本在线电影一区二区三区| 欧美精品电影免费在线观看| 天干夜夜爽爽日日日日| 国产麻豆视频精品| 玖玖玖精品中文字幕| 男人资源在线播放| 大荫蒂欧美视频另类xxxx| 国产乱码一区二区三区四区| 六月丁香久久丫| 中日韩美女免费视频网站在线观看| 欧美日韩偷拍视频| 日本在线播放一区二区三区| 国产精品区一区二区三在线播放| 成人精品一区二区三区校园激情| 亚洲午夜精品久久久久久久久| 欧美一级黄色影院| 国产伦理久久久久久妇女| 日韩中文字幕第一页| 国产99久久久| 国产99久久久国产精品潘金网站| 亚洲激情图片| 欧美电影免费观看高清完整| 欧美tk丨vk视频| 美女福利视频网| 丝瓜av网站精品一区二区| 国产一区免费观看| 91亚洲天堂| 欧美三级乱人伦电影| 自拍偷拍亚洲天堂| 99亚洲伊人久久精品影院红桃| 91欧美日韩一区| av在线三区| 色国产精品一区在线观看| 亚洲色偷偷色噜噜狠狠99网| 91精品国产乱码久久久久久| 国产精品免费久久久久久| 天堂中文在线资| 亚洲高清一区二区三区| √天堂资源在线| 久久精品国产99久久| 国产精品流白浆视频| 日韩二区三区| 欧美性xxxxxx| 三上悠亚ssⅰn939无码播放 | 日本10禁啪啪无遮挡免费一区二区| 久草在线视频网站| 欧美成人精品3d动漫h| 男人与禽猛交狂配| 国产综合成人久久大片91| 亚洲一区美女| 亚洲国产天堂| 久久精品男人天堂| 国产女人18毛片水18精| 国产精品久久精品日日| 在线观看免费视频高清游戏推荐| 欧美系列电影免费观看 | 亚洲精品男人的天堂| 99国产精品国产精品毛片| aa在线观看视频| 亚洲精品无吗| 国产精品高潮呻吟久久av野狼| 久久精品国产亚洲a∨麻豆| 欧美性生交xxxxx久久久| 草草影院第一页| 喷水一区二区三区| 日本黄色a视频| 在这里有精品| 97视频在线观看免费高清完整版在线观看 | 超碰国产精品久久国产精品99| 亚洲www色| 亚洲精品美女久久 | 欧美日韩在线播放三区四区| 久久精品国产亚洲AV成人婷婷| 久久国内精品自在自线400部| 中文字幕一区二区三区乱码| 玖玖精品一区| 91精品国产91久久久| 嫩草研究院在线| 欧美久久久久久蜜桃| 欧美成人aaa片一区国产精品| 国产成人av福利| 亚洲中文字幕无码av永久| 欧美人与物videos另类xxxxx| 国产精品入口福利| 性欧美videoshd高清| 亚洲福利在线看| 在线观看国产黄| 亚洲一区在线观看免费 | 日本精品一区二区三区在线播放视频| 国产美女性感在线观看懂色av| 欧美精品久久99久久在免费线| 久久久无码精品亚洲国产| 久久中文字幕电影| 午夜激情影院在线观看| 一区二区三区四区五区在线| 亚洲一区二区三区午夜| 国产成人福利av| 国产精品视频午夜| h片精品在线观看| 一区二区亚洲精品国产| 精品久久久免费视频| 色综合天天做天天爱| 色欲人妻综合网| 久久久久久亚洲综合| 国偷自产av一区二区三区麻豆| 三级亚洲高清视频| 久久久久久久香蕉| 欧美精品一二| 狠狠色伊人亚洲综合网站色| 一区二区三区日本视频| 欧美中文在线观看国产| 欧美1—12sexvideos| 国产亚洲欧美视频| 人人妻人人玩人人澡人人爽| 欧美人妇做爰xxxⅹ性高电影| 成人免费a视频| 亚洲制服欧美中文字幕中文字幕| 少妇一级黄色片| 99麻豆久久久国产精品免费 | 波多野结衣一区二区在线| 亚洲国产精品欧美一二99| 99精品中文字幕| 国产欧美一区二区精品性色超碰| 欧美图片自拍偷拍| 国产在线播放一区| 国产精品igao| 久久亚洲影院| 人妻精品无码一区二区三区| 亚洲高清免费| av一区二区三区免费观看| 亚洲蜜桃视频| 亚洲欧美在线网| 成人影院天天5g天天爽无毒影院| 久久精品99久久| 老司机aⅴ在线精品导航 | 国产91绿帽单男绿奴| 91精品国产一区二区三区蜜臀| 中文字幕永久免费视频| 日本高清视频一区二区| 国产精品21p| 欧美日韩中国免费专区在线看| 国产一级片久久| 亚洲综合色丁香婷婷六月图片| 成人在线观看免费完整| 亚洲欧美自拍偷拍色图| 少妇高潮惨叫久久久久| 欧美激情一区二区三区在线| 影音先锋制服丝袜| 国产日产精品一区| 五月激情四射婷婷| 日本一区二区成人| 久久久99999| 亚洲欧美一区二区三区国产精品 | 日韩欧美成人午夜| 高清乱码毛片入口| 亚洲精品久久久一区二区三区| 韩国av免费在线| 亚洲精品久久久久久久久久久久| 神马久久久久| 一区二区欧美日韩视频| 1769视频在线播放免费观看| 日韩中文综合网| av在线导航| 国模精品视频一区二区三区| 亚洲少妇视频| 国产精品视频网站| 欧美h版在线观看| 国产精品国产一区二区| 麻豆视频一区| 日韩福利视频| 夜间精品视频| 欧美二区在线视频| 视频精品一区二区| 麻豆网站免费观看| 成人av电影免费在线播放| 精品少妇人妻一区二区黑料社区| 国产精品视频麻豆| 久久久久免费看| 欧美日韩在线视频一区二区| 一级黄色片网站| 欧美成人a∨高清免费观看| 污视频在线免费观看| 尤物九九久久国产精品的分类| 久草免费在线观看| 国模私拍一区二区三区| 3d欧美精品动漫xxxx无尽| 亚洲va欧美va在线观看| 欧美大奶一区二区| 亚洲午夜精品一区二区三区| 在线成人av| 五月天激情视频在线观看| 成人在线一区二区三区| 人妻精品久久久久中文| 一区二区在线看| 日本中文字幕第一页| 91精品国产91久久久久久最新毛片| 手机在线精品视频| www.日韩av.com| 蜜桃视频m3u8在线观看| 91夜夜未满十八勿入爽爽影院| 亚洲精品456| 中文字幕日韩精品无码内射| 日本伊人色综合网| 日本一区二区在线观看视频| 国产精品卡一卡二| 国产又大又黑又粗免费视频| 欧美日本在线播放| 午夜在线观看视频18| 欧美成人免费网| 激情亚洲影院在线观看| 成人91视频| 91精品一区国产高清在线gif | 农村妇女一区二区| 精品无人乱码一区二区三区的优势 | 精品亚洲男同gayvideo网站| 99在线视频观看| 国产精品高潮视频| 秋霞影视一区二区三区| 影音先锋成人资源网站| 日韩不卡免费视频| 中文字幕一区二区三区人妻不卡| 亚洲一区视频在线观看视频| 国产美女三级无套内谢| 亚洲最大在线视频| 成人免费看黄| 精品一区2区三区| 国产一区日韩欧美| 一本之道在线视频| 一区在线观看免费| 最近日韩免费视频| 亚洲天堂日韩电影| 欧美大胆性生话| 久久一区二区精品| 国产精品女主播一区二区三区| 国产精九九网站漫画| 亚洲精品一二三四区| 国产精品久久久久久无人区| 亚洲成人免费影院| 99久久精品国产色欲| 久久久国产视频91| 全球中文成人在线| 在线观看日本一区| 久久国内精品自在自线400部| 一级片黄色录像| 欧美日精品一区视频| 成人午夜影视| 国产欧美 在线欧美| 99成人在线视频| 99re6在线观看| 亚洲色图欧美激情| www日本在线| 国语自产在线不卡| 国产一区二区三区亚洲| 日韩日韩日韩日韩日韩| av成人老司机| 狠狠人妻久久久久久综合| 国产亚洲精品久久久久动| 四虎4545www国产精品| 涩涩日韩在线| 韩国一区二区在线观看| 欧美三级免费看| 亚洲精品v欧美精品v日韩精品| 鲁鲁在线中文| 神马一区二区影院| 久久99精品一区二区三区三区| 麻豆天美蜜桃91| 亚洲国产高清高潮精品美女| 三级在线观看视频| 午夜精品福利一区二区| 久久99九九99精品| 精品在线免费观看视频| 日韩精品在线观| 欧美与亚洲与日本直播| 看一级黄色录像| 成人性生交大合| 国产精品久久久久久久久夜色| 中文字幕在线看视频国产欧美| 亚洲91网站| 国模吧无码一区二区三区| 欧美激情一区二区在线| 亚洲av无码国产精品永久一区| 91chinesevideo永久地址| 视频在线不卡免费观看| 在线中文字日产幕| 日本韩国欧美国产| 亚洲国产精品精华素| 欧美在线日韩精品| 国产主播一区二区三区| 中日韩黄色大片| 日韩日本欧美亚洲| 果冻天美麻豆一区二区国产| 亚洲这里只有精品| 午夜久久久影院| 性开放的欧美大片| 国产三区精品| 精品一区二区三区香蕉蜜桃| 在线观看中文字幕视频| 日韩亚洲精品视频| 清纯唯美亚洲经典中文字幕| 97超碰人人看| 在线观看视频欧美| 超碰97免费在线| 午夜啪啪免费视频| 久久久夜色精品亚洲|