亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

影響網(wǎng)頁渲染的關(guān)鍵

weknow619 / 722人閱讀

摘要:最優(yōu)化渲染路徑,實際上只要聚焦三件事情最小化關(guān)鍵資源的數(shù)量最小化關(guān)鍵字節(jié)數(shù)最小化關(guān)鍵路徑的長度理解頁面加載速度的測量辦法當百度談論頁面加載速度時,他們并不是指加載一個網(wǎng)頁的總時間。

張超 — MAY 21, 2015

經(jīng)常有站長、開發(fā)者、運維疑惑:為什么我們的后臺服務器很快,但是用戶要看網(wǎng)頁里面的內(nèi)容卻需要很長時間?我們在上一篇文章《怪獸大作戰(zhàn): 解析網(wǎng)站打開慢的原因》中簡單介紹了影響網(wǎng)站打開速度的幾個指標,感興趣的同學可以再讀一下。今天我們主要講一下,是哪些因素拖慢了我們的首屏加載時間,也就是用戶看到網(wǎng)頁中內(nèi)容時所等待的時間。

用過OneAPM的讀者對這幅圖肯定不陌生,一般來講,如果服務器很快,機房所在線路很快,那么影響用戶看到網(wǎng)頁內(nèi)容的主要時間,就是最后兩個時間階段:DOM處理以及網(wǎng)頁渲染,在這兩個階段中,瀏覽器需要解析網(wǎng)頁中的各種資源并進行渲染,最終形成用戶頁面。這個過程是否流暢,直接影響到用戶需要等待的時間,從更深層次而言,直接會影響最終的用戶體驗,現(xiàn)在大家也普遍接受一個觀點“延遲就是故障”,所以你需要重視網(wǎng)站的加載速度。

打造輕量級的資源路徑--關(guān)鍵渲染路

網(wǎng)頁加載速度中最重要的概念是關(guān)鍵渲染路徑。如果能理解好這個概念,的確可以讓用戶更快看到網(wǎng)頁中的內(nèi)容。

輕量級資源和路徑,可以縮短復雜網(wǎng)頁的構(gòu)建和渲染時間,甚至比簡單網(wǎng)頁還要快! 由于大多數(shù)網(wǎng)頁都包含許多不同的組成部分,僅僅移除部分資源并不能保證更快的加載速度。 如果你曾經(jīng)想過:“為了提高網(wǎng)頁的加載速度,我還能做什么?”或者“新浪、QQ、網(wǎng)易是如何做到在一秒鐘內(nèi)加載那么多網(wǎng)頁內(nèi)容的?”那么關(guān)鍵渲染路徑這個概念正是你需要了解的。

什么是關(guān)鍵渲染路徑?

清楚起見,讓我們先定義一些概念:

  

關(guān)鍵:絕對需要
渲染:顯示或者展示(在我們的情境中,網(wǎng)頁經(jīng)過渲染才能呈現(xiàn)給用戶)
路徑:使我們的網(wǎng)頁展示在瀏覽器中的一系列事件
首屏:是用戶滾動頁面之前就能看見的部分。

因此,換言之,渲染路徑就是一系列使你的網(wǎng)頁呈現(xiàn)在瀏覽器中的事件。而關(guān)鍵渲染路徑是呈現(xiàn)網(wǎng)頁首屏所需的那些事件。因為幾乎所有網(wǎng)站在渲染網(wǎng)頁時都包含了不必要的步驟,而減少這些不必要的路徑,能使你的網(wǎng)頁加載速度提高幾秒鐘,這也是提高網(wǎng)頁速度的最快方法。

路徑

為了顯示一張網(wǎng)頁,瀏覽器必須獲取網(wǎng)頁所需的所有資源。一個簡單的例子:一個網(wǎng)頁需要一張圖片,一個CSS文件,一個JavaScript文件。

我們來看看這張網(wǎng)頁在展示之前經(jīng)歷的路徑:

瀏覽器下載html文件

瀏覽器讀取html文件,發(fā)現(xiàn)里面涉及一個CSS文件,一個JavaScript文件和一張圖片

瀏覽器開始下載這張圖片

瀏覽器發(fā)現(xiàn)不獲取CSS和JavaScript文件就無法顯示網(wǎng)頁

瀏覽器下載CSS文件并讀取之,確保除此之外沒有別的文件需要被訪問

瀏覽器發(fā)現(xiàn)不獲取JavaScript文件還是無法顯示網(wǎng)頁

瀏覽器下載JavaScript文件并讀取之,確保除此之外沒有別的文件需要被訪問

瀏覽器發(fā)現(xiàn)現(xiàn)在可以顯示網(wǎng)頁了

上面的路徑是簡單網(wǎng)頁的加載過程?,F(xiàn)在,試想一下你的網(wǎng)頁加載路徑會怎么樣?你很可能會有幾個交互按鈕,數(shù)個CSS和JavaScript文件,很多圖片和小插件,甚至可能還有音頻或者視頻文件。這意味著,你的渲染路徑很可能會像一個大迷宮。大多數(shù)網(wǎng)站的渲染路徑都極其復雜,因為瀏覽器在顯示網(wǎng)頁之前需要加載的文件太多。這就是你可以超過他人的地方。如果你讓自己的網(wǎng)頁加載得比競爭者的快,你就能獲得訪問者的青睞(百度就喜歡這樣的開發(fā)者),例如新浪微博的路徑就是這樣的:

渲染過程

在展示網(wǎng)頁所需的眾多資源中,存在一些資源會阻塞網(wǎng)頁的渲染過程。最常見的兩種資源就是CSS文件和JavaScript文件。不管你需要多少個這樣的文件,瀏覽器必須逐一下載并分析這些文件,然后才能給用戶展示內(nèi)容。讓我們來看一個最常見不過的場景:

WordPress博客使用主題。幾乎每一個WordPress主題都包含多個CSS文件。

許多主題包含六七個CSS文件。所有的CSS文件都可以合并到一個文件中,但是當你添加主題時,會包含多個CSS文件。因此,在你的博客顯示哪怕一個字之前,瀏覽器都不得不經(jīng)過六七次的與服務器交互,把這些文件一個個地下載下來,并分析讀取,之后才能開始顯示。

在加載的過程中,訪問者都只能看到一篇空白的屏幕。因為只有當關(guān)鍵步驟完成以后,才會有東西顯示。

但是,即便下載完這些CSS文件,你的博客還是不能完成渲染。因為WordPress主題還需要幾個JavaScript文件。

因此,渲染一頁典型的WordPress博客網(wǎng)頁,需要瀏覽器與服務器交互大約20次,才能將主要的CSS和JavaScript文件下載完畢。但是,等等,現(xiàn)在你還需要交互按鈕,小插件……噢,不,針對每一個這樣的部件,你還要下載幾個CSS,JavaScript文件。

你可能要下載幾十個文件,才能讓自己的博客展示在用戶面前。真是麻煩!(去查查你的網(wǎng)頁都要加載什么文件,可以使用OneAPM 的SessionTrace 功能看看網(wǎng)頁加載資源在用戶那里的速度)

但是事情不僅限于WordPress,本文只是拿它舉個例子而已。通常創(chuàng)建網(wǎng)頁的初始視圖都很多資源,因此會產(chǎn)生多個請求。

關(guān)鍵

目前我只是描繪了一張非常朦朧的藍圖。好消息是:你可以為你的網(wǎng)頁請求一
百萬個資源,其中包括12000張圖像,200個JavaScript文件,而這些都可能在一秒鐘內(nèi)加載完成。

這是如何實現(xiàn)的呢?

只要理解對你的網(wǎng)站而言,顯示首屏的內(nèi)容所需的關(guān)鍵步驟,就能實現(xiàn)。

最優(yōu)化渲染路徑,實際上只要聚焦三件事情:

  

最小化關(guān)鍵資源的數(shù)量
最小化關(guān)鍵字節(jié)數(shù)
最小化關(guān)鍵路徑的長度

理解頁面加載速度的測量辦法

當百度談論頁面加載速度時,他們并不是指加載一個網(wǎng)頁的總時間。他們說的是用戶看到首屏所需的時間,以及用戶可以開始與頁面內(nèi)容進行交互所需的時間。

百度之所以開始采用頁面加載速度作為影響要素,是基于他們用戶的滿意度。當用戶使用百度搜索時,他們要是被帶到加載時間很長的頁面,無疑是很糟糕的經(jīng)歷。

人們向百度抱怨,他們說:“為什么將我?guī)У揭粋€加載如此緩慢的頁面?”顯然,人們感知到了速度的差別。

如果一個用戶要盯著一個空白的網(wǎng)頁10秒之久等待它加載內(nèi)容,這無疑是很差的體驗。百度不想在他們的結(jié)果中出現(xiàn)這樣的頁面。如果那個頁面能在1秒內(nèi)顯示內(nèi)容,這就是極好的用戶體驗,這才是百度想要的結(jié)果。

我們討論網(wǎng)頁速度時最關(guān)注的就是將初首屏的內(nèi)容盡早地顯示給用戶。 通過OneAPM SessionTrace 功能可以查看各個資源的加載速度,方便調(diào)整加載資源的策略,例如

后續(xù)

其實,優(yōu)化網(wǎng)頁渲染路還有很多小技巧、插件、方法等待,未來我們將在后續(xù)的文章中一一和大家分享。


本文作者系OneAPM工程師張超編譯整理,想閱讀更多技術(shù)文章,請訪問OneAPM官方技術(shù)博客。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/7910.html

相關(guān)文章

  • 前端性能優(yōu)化之--頁面渲染優(yōu)化全面解析

    摘要:下面我們撇開網(wǎng)絡方面的優(yōu)化,只分析靜態(tài)資源方面的優(yōu)化。不過,也會阻止的構(gòu)建和延緩網(wǎng)頁渲染。未優(yōu)化正常加載優(yōu)化后異步加載根據(jù)上面的分析,我們可以清楚的認識到,非必要優(yōu)先加載的,選擇異步加載是最優(yōu)選擇。 為什么做優(yōu)化 經(jīng)典問題:白屏時間過長,用戶體驗差產(chǎn)生的原因:網(wǎng)絡問題、關(guān)鍵渲染路徑(CRP)問題 怎么做優(yōu)化 如何做好優(yōu)化呢,網(wǎng)上隨便一搜,就有很多優(yōu)化總結(jié),無非就是網(wǎng)絡優(yōu)化、靜態(tài)資源(h...

    gghyoo 評論0 收藏0
  • 前端性能優(yōu)化之--頁面渲染優(yōu)化全面解析

    摘要:下面我們撇開網(wǎng)絡方面的優(yōu)化,只分析靜態(tài)資源方面的優(yōu)化。不過,也會阻止的構(gòu)建和延緩網(wǎng)頁渲染。未優(yōu)化正常加載優(yōu)化后異步加載根據(jù)上面的分析,我們可以清楚的認識到,非必要優(yōu)先加載的,選擇異步加載是最優(yōu)選擇。 為什么做優(yōu)化 經(jīng)典問題:白屏時間過長,用戶體驗差產(chǎn)生的原因:網(wǎng)絡問題、關(guān)鍵渲染路徑(CRP)問題 怎么做優(yōu)化 如何做好優(yōu)化呢,網(wǎng)上隨便一搜,就有很多優(yōu)化總結(jié),無非就是網(wǎng)絡優(yōu)化、靜態(tài)資源(h...

    MadPecker 評論0 收藏0
  • 前端性能優(yōu)化之--頁面渲染優(yōu)化全面解析

    摘要:下面我們撇開網(wǎng)絡方面的優(yōu)化,只分析靜態(tài)資源方面的優(yōu)化。不過,也會阻止的構(gòu)建和延緩網(wǎng)頁渲染。未優(yōu)化正常加載優(yōu)化后異步加載根據(jù)上面的分析,我們可以清楚的認識到,非必要優(yōu)先加載的,選擇異步加載是最優(yōu)選擇。 為什么做優(yōu)化 經(jīng)典問題:白屏時間過長,用戶體驗差產(chǎn)生的原因:網(wǎng)絡問題、關(guān)鍵渲染路徑(CRP)問題 怎么做優(yōu)化 如何做好優(yōu)化呢,網(wǎng)上隨便一搜,就有很多優(yōu)化總結(jié),無非就是網(wǎng)絡優(yōu)化、靜態(tài)資源(h...

    gaomysion 評論0 收藏0
  • 前端修煉の道:第一個 HTML 頁面

    摘要:可見對一個頁面正確渲染很重要。和標簽對用于標識頁面的頭部區(qū)域,和之間的內(nèi)容都屬于頭部區(qū)域中的內(nèi)容。是一個輔助性標簽,對頁面可以進行很多方面的特性的設置。當頁面沒有設置字符集時,瀏覽器會使用默認的字符編碼顯示。 showImg(https://segmentfault.com/img/bVbjNkI?w=900&h=383); 往期回顧 在 1.2 節(jié)介紹 HTML 語言時講到:HTML...

    JasonZhang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<