摘要:每種可被解析的格式必須具有由詞匯及語法規(guī)則組成的特定的文法,稱為上下文無關(guān)文法。解析解析器,每個標(biāo)識都有特定的正則進(jìn)行解析。開發(fā)者可以將腳本標(biāo)識為,以使其不阻塞文檔解析,并在文檔解析結(jié)束后執(zhí)行。
瀏覽器組成
用戶界面-地址欄、按鈕之類的
瀏覽器引擎-用來查詢及操作渲染引擎的接口
渲染引擎-顯示請求的內(nèi)容
網(wǎng)絡(luò)-進(jìn)行網(wǎng)絡(luò)請求
ui后端-用來滬指選擇框、對話框的基本組件
js解析器
數(shù)據(jù)存儲
需要注意的是,不同于大部分瀏覽器,Chrome為每個Tab分配了各自的渲染引擎實例,每個Tab就是一個獨立的進(jìn)程
解析html以構(gòu)建dom樹->構(gòu)建render樹->布局render樹->繪制render樹
渲染引擎開始解析html,并將標(biāo)簽轉(zhuǎn)化胃內(nèi)容樹中的dom節(jié)點,接著它解析外部css文件及style標(biāo)簽中的樣式信息,這些樣式信息和html元素中的樣式信息將被用來構(gòu)建另一顆樹---渲染樹
渲染樹是有一些包含有顏色和大小等屬性的矩形組成,它們將被按照正確的順序顯示到屏幕上。
渲染樹構(gòu)建好了之后,將會執(zhí)行布局過程,它將確定每個節(jié)點上在屏幕上的確切坐標(biāo),再下一步就是繪制渲染樹,使用ui后端層繪制每個節(jié)點
解析解析一個文檔即將其轉(zhuǎn)換為具有一定意義的結(jié)構(gòu)——編碼可以理解和使用的東西。解析的結(jié)果通常是表達(dá)文檔結(jié)構(gòu)的節(jié)點樹,稱為解析樹或語法樹。
文法解析基于文檔依據(jù)的語法規(guī)則——文檔的語言或格式。每種可被解析的格式必須具有由詞匯及語法規(guī)則組成的特定的文法,稱為上下文無關(guān)文法。人類語言不具有這一特性,因此不能被一般的解析技術(shù)所解析。
html解析器html解析器將html標(biāo)識解析成解析樹,解析書是有dom元素及屬性節(jié)點組成,dom是文檔對象模型的縮寫。解析算法 html并不是由頂向下或者自低向上的解析,
原因是:
這門語言本身的寬容特性
瀏覽器對一些常見的非法html有容錯機(jī)制
解析過程是往復(fù)的,通常源碼不會在解析過程中發(fā)生改變,但在html中,腳本標(biāo)簽包含的“document.write ”可能添加標(biāo)簽,這說明在解析過程中實際上修改了輸入
瀏覽器為html制定了專門的解析器。
CSS解析css解析器,css 每個標(biāo)識都有特定的正則進(jìn)行解析。一個規(guī)則集合具有一個或者可選個數(shù)的多個選擇器
腳本解析web的模式是同步的,開發(fā)者希望解析到一個script標(biāo)簽時立即解析執(zhí)行腳本,并阻塞文檔的解析直到腳本執(zhí)行完。如果腳本是外引的,則網(wǎng)絡(luò)必須先請求到這個資源——這個過程也是同步的,會阻塞文檔的解析直到資源被請求到。這個模式保持了很多年,并且在html4及html5中都特別指定了。開發(fā)者可以將腳本標(biāo)識為defer,以使其不阻塞文檔解析,并在文檔解析結(jié)束后執(zhí)行。Html5增加了標(biāo)記腳本為異步的選項,以使腳本的解析執(zhí)行使用另一個線程。
渲染樹的構(gòu)造這個比較復(fù)雜,以后多帶帶來寫
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/116257.html
摘要:在這里,我根據(jù)瀏覽器的工作原理整理了一套自己的知識體系,方便自己學(xué)習(xí),有很多不足的地方,希望大家多多交流。圖片可以點擊查看原圖進(jìn)行觀看 做前端的同學(xué)都知道,前端技術(shù)目前需要學(xué)習(xí)的知識太多了,各種框架,技術(shù)層出不窮,但只要我們自己有自己的一套知識體系,打好基礎(chǔ),再學(xué)習(xí)新東西就會很容易。在這里,我根據(jù)瀏覽器的工作原理整理了一套自己的知識體系,方便自己學(xué)習(xí),有很多不足的地方,希望大家多多交流...
摘要:在這里,我根據(jù)瀏覽器的工作原理整理了一套自己的知識體系,方便自己學(xué)習(xí),有很多不足的地方,希望大家多多交流。圖片可以點擊查看原圖進(jìn)行觀看 做前端的同學(xué)都知道,前端技術(shù)目前需要學(xué)習(xí)的知識太多了,各種框架,技術(shù)層出不窮,但只要我們自己有自己的一套知識體系,打好基礎(chǔ),再學(xué)習(xí)新東西就會很容易。在這里,我根據(jù)瀏覽器的工作原理整理了一套自己的知識體系,方便自己學(xué)習(xí),有很多不足的地方,希望大家多多交流...
摘要:在這里,我根據(jù)瀏覽器的工作原理整理了一套自己的知識體系,方便自己學(xué)習(xí),有很多不足的地方,希望大家多多交流。圖片可以點擊查看原圖進(jìn)行觀看 做前端的同學(xué)都知道,前端技術(shù)目前需要學(xué)習(xí)的知識太多了,各種框架,技術(shù)層出不窮,但只要我們自己有自己的一套知識體系,打好基礎(chǔ),再學(xué)習(xí)新東西就會很容易。在這里,我根據(jù)瀏覽器的工作原理整理了一套自己的知識體系,方便自己學(xué)習(xí),有很多不足的地方,希望大家多多交流...
摘要:每種可被解析的格式必須具有由詞匯及語法規(guī)則組成的特定的文法,稱為上下文無關(guān)文法。解析解析器,每個標(biāo)識都有特定的正則進(jìn)行解析。開發(fā)者可以將腳本標(biāo)識為,以使其不阻塞文檔解析,并在文檔解析結(jié)束后執(zhí)行。 瀏覽器組成 用戶界面-地址欄、按鈕之類的 瀏覽器引擎-用來查詢及操作渲染引擎的接口 渲染引擎-顯示請求的內(nèi)容 網(wǎng)絡(luò)-進(jìn)行網(wǎng)絡(luò)請求 ui后端-用來滬指選擇框、對話框的基本組件 js解析器 數(shù)據(jù)...
摘要:渲染引擎渲染引擎也稱為瀏覽器內(nèi)核,主要時在瀏覽器窗口中顯示所請求的內(nèi)容,這是每個瀏覽器的核心部分。 瀏覽器的結(jié)構(gòu) 瀏覽器的主要組件包括: 用戶界面——包括地址欄、前進(jìn)/后退按鈕、書簽菜單等。除了瀏覽器主窗口顯示用戶請求的頁面外,其他顯示的各個部分都屬于用戶界面。 用戶界面后端——用于繪制基本的窗口小部件,比如組合框和窗口。其公開了與web應(yīng)用無關(guān)的通用接口,而在底層使用操作系統(tǒng)的用戶...
閱讀 634·2023-04-25 18:37
閱讀 2796·2021-10-12 10:12
閱讀 8374·2021-09-22 15:07
閱讀 577·2019-08-30 15:55
閱讀 3183·2019-08-30 15:44
閱讀 2204·2019-08-30 15:44
閱讀 1634·2019-08-30 13:03
閱讀 1569·2019-08-30 12:55