摘要:所以選擇器嵌套層次越深,匹配的時間會越長。加載會阻塞初次渲染對于首頁無關(guān)的樣式,需要使用適當?shù)姆绞奖苊馄渥枞醮武秩緯枞撁娉醮武秩臼褂妹襟w查詢,雖然加載樣式表,但只針對打印時才應用該樣式,不會阻塞初次渲染。通過引入,可以避免阻塞。
瀏覽器渲染原理
DOM樹構(gòu)建
過程:
1.根據(jù)HTML文檔的內(nèi)容,根據(jù)標簽進行分詞Token
2.根據(jù)Token生產(chǎn)對應的節(jié)點Node
3.將節(jié)點根據(jù)嵌套關(guān)系組合成為一棵對象節(jié)點樹DOM
瀏覽器解析文檔對象模型DOM是增量進行的,無需等待整個HTML文檔加載完畢,便可以開始解析DOM CSSOM解析會阻塞HTML Parser;JavaScript腳本文件執(zhí)行會阻塞HTML解析;CSS、JavaScript、Images和Font等靜態(tài)資源的異步加載的,渲染頁面與CSS解析與JavaScript執(zhí)行會有相互的依賴
CSSOM樹的構(gòu)建
CSSOM的解析依賴于選擇器,選擇器的匹配是從內(nèi)到外的。所以選擇器嵌套層次越深,匹配的時間會越長。
CSSOM只解析可視部分body標簽中的內(nèi)容,將所有匹配的元素共同構(gòu)建一個CSSOM樹,從根節(jié)點一次向下,所有節(jié)點的屬性向下繼承RenderTree樹的構(gòu)建
利用DOM和CSSOM組合構(gòu)建生成RenderTree,對應Recaculate Style
RenderTree中包含所有渲染網(wǎng)頁必須的節(jié)點 無需渲染的節(jié)點不會被添加到RenderTree中,如head和display:none;的節(jié)點 visibility: hidden;的節(jié)點會添加到RenderTree中
瀏覽器通過GET請求獲取網(wǎng)頁HTML,同時將增量解析HTML文檔,生成DOM樹
解析DOM節(jié)點樹時,對于需要加載的資源全部執(zhí)行異步加載,但是CSS的解析、JavaScript的執(zhí)行與font文件的下載會阻塞HTML Parser
局部DOM樹與CSSOM樹構(gòu)建完成后,立即組裝RenderTree進行渲染
瀏覽器渲染頁面的時機
增量解析解析DOM樹,并且完成相應CSSOM解析后(RenderTree依賴于DOM樹,CSSOM樹),開始直接渲染頁面。
4.2 CSS加載會阻塞初次渲染
對于首頁無關(guān)的樣式,需要使用適當?shù)姆绞奖苊馄渥枞醮武秩荆?/p>
document.write()會阻塞頁面初次渲染
使用media=print媒體查詢,雖然加載樣式表,但只針對打印時才應用該樣式,不會阻塞初次渲染。
通過DOMAPI引入CSS,可以避免阻塞。
CSS中。
哎呀文章有點亂了
搬運地址
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/50751.html
摘要:五瀏覽器繪制網(wǎng)頁繪制過程主要是結(jié)構(gòu)與樣式的結(jié)合,以及行為動態(tài)效果的展現(xiàn)。之后會寫系列文章,歡迎圍觀主要參考文章基礎進階詳解與編碼前端面試題從到頁面展現(xiàn),這之中發(fā)生了什么圖解 流程概述: 地址欄輸入URL ——> 域名解析 ——> 服務器處理請求 ——> 瀏覽器處理響應 ——> 瀏覽器繪制網(wǎng)頁 一.地址欄輸入URL 認識URL showImg(https://segmentfault....
摘要:是提供的類,為了在容器中建立容器而服務的。主要處理的請求分發(fā),對進行管理。接收到請求由進行匹配,匹配成功后交由進行業(yè)務邏輯的處理,業(yè)務邏輯處理完成后交由進行數(shù)據(jù)的解析同時找到對應的,最終由將的結(jié)果到瀏覽器進行解析。 spring給我們帶來了什么? spring IoC、AOP、Transaction這些都是很重要的特性,但是這篇這些都不是主角,主要來談談springMVC是如何對請求參...
摘要:其主要行為是將解釋器進程保持在內(nèi)存中并因此獲得較高的性能。當子進程關(guān)閉連接時,請求便處理完成。 關(guān)于factcgi和cgi的學習 1、FastCGI是什么? 首先我們看下CGI,CGI全稱為通用網(wǎng)關(guān)接口 Common Cateway Interface.用于HTTP服務上的程序服務通信交流的一種工具,可以讓一個客戶端,從網(wǎng)頁瀏覽器向執(zhí)行在網(wǎng)絡服務器上的程序請求數(shù)據(jù)。CGI描述了服務器...
摘要:其主要行為是將解釋器進程保持在內(nèi)存中并因此獲得較高的性能。當子進程關(guān)閉連接時,請求便處理完成。 關(guān)于factcgi和cgi的學習 1、FastCGI是什么? 首先我們看下CGI,CGI全稱為通用網(wǎng)關(guān)接口 Common Cateway Interface.用于HTTP服務上的程序服務通信交流的一種工具,可以讓一個客戶端,從網(wǎng)頁瀏覽器向執(zhí)行在網(wǎng)絡服務器上的程序請求數(shù)據(jù)。CGI描述了服務器...
摘要:性能優(yōu)化網(wǎng)站的性能細線在幾個方面網(wǎng)站首頁加載速度動畫的流暢度通過分析瀏覽器的渲染原理資源對渲染的影響,得出優(yōu)化網(wǎng)站性能的辦法。查看性能的工具的面板錄制網(wǎng)頁加載的過程,分析記錄瀏覽器渲染過程中每個過程的耗時。通過引入,可以避免阻塞。 1 Web性能優(yōu)化 Web網(wǎng)站的性能細線在幾個方面: 網(wǎng)站首頁加載速度 動畫的流暢度 通過分析瀏覽器的渲染原理、資源對渲染的影響,得出優(yōu)化網(wǎng)站性能的辦法...
閱讀 1442·2021-11-22 15:25
閱讀 3472·2021-10-21 09:38
閱讀 1665·2021-10-19 13:21
閱讀 1081·2021-09-06 15:00
閱讀 1770·2019-08-30 15:44
閱讀 2660·2019-08-29 15:40
閱讀 3717·2019-08-29 13:44
閱讀 2156·2019-08-26 16:56