• <strike id="q60me"></strike><ul id="q60me"></ul>
    <ul id="q60me"></ul>
  • <fieldset id="q60me"><input id="q60me"></input></fieldset>

    網(wǎng)頁前端的9個優(yōu)化技巧,提高web性能

    華峰博客 592

    當(dāng)今數(shù)字世界,存在著無數(shù)的網(wǎng)站,每天都需要處理各種不同的原因的訪問。然而,這些網(wǎng)站中有很大一部分顯得笨重,使用起來也很麻煩。沒怎么優(yōu)化的網(wǎng)站會被各種各樣的問題困擾,包括加載時間、不支持移動設(shè)備、瀏覽器兼容性問題,等等。

    這篇文章講述可以幫助改善優(yōu)化前端的技術(shù),非常有用。主要內(nèi)容有清理代碼、壓縮圖片、壓縮外部資源、使用 CDN,以及一些其它方法。這些方法會為你的網(wǎng)站帶顯著的速度提升和整體性能提升。

    1. 清理 HTML 文檔

    HTML,即超文本標(biāo)記語言,幾乎是所有網(wǎng)站的支柱。HTML 為網(wǎng)頁帶來標(biāo)題、子標(biāo)題、列表和其它一些文檔結(jié)構(gòu)的格式。在最近更新的 HTML5 中,甚至可以創(chuàng)建圖表。

    HTML 很容易被網(wǎng)絡(luò)爬蟲識別,因此搜索引擎可以根據(jù)網(wǎng)站的內(nèi)容在一定程度上實(shí)時更新。在寫 HTML 的時候,你應(yīng)該嘗試讓它簡潔而有效。此外,在 HTML 文檔中引用外部資源的時候也需要遵循一些最佳實(shí)踐方法。

    恰當(dāng)放置 CSS

    Web 設(shè)計者喜歡在網(wǎng)頁建立起主要的 HTML 骨架之后再來創(chuàng)建樣式表。這樣一來,網(wǎng)頁中的樣式表往往會放在 HTML 的后面,接近文檔結(jié)束的地方。然而推薦的做法是把 CSS 放在 HTML 的上面部分,文檔頭之內(nèi),這可以確保正常的渲染過程。

    <head>

    <link?>

    </head>

    這個策略不能提高網(wǎng)站的加載速度,但它不會讓訪問者長時間看著空白屏幕或者無格式的文本(FOUT)等待。如果網(wǎng)頁大部分可見元素已經(jīng)加載出來了,訪問者才更有可能等待加載整個頁面,從而帶來對前端的優(yōu)化效果。這就是知覺性能。

    正確放置 Javascript

    另一方面,如果將 JavaScript 放置在 head 標(biāo)簽內(nèi)或 HTML 文檔的上部,這會阻塞 HTML 和 CSS 元素的加載過程。這個錯誤會導(dǎo)致頁面加載時間增長,增加用戶等待時間,容易讓人感到不耐煩而放棄對網(wǎng)站的訪問。不過,您可以通過將 JavaScript 屬性置于?HTML 底部來避免此問題。

    此外,在使用 JavaScript 時,人們通常喜歡用異步腳本加載。這會阻止<script>標(biāo)簽在 HTML 中的呈現(xiàn)過程,如,在文檔中間的情況。

    雖然對于網(wǎng)頁設(shè)計師來說, HTML 是最值得使用的工具之一,但它通常要與 CSS 和 JavaScript 一起使用,這可能會導(dǎo)致網(wǎng)頁瀏覽速度減慢。 雖然 CSS 和 JavaScript 有利于網(wǎng)頁優(yōu)化,但使用時也要注意一些問題。使用 CSS 和 JavaScript 時,要避免嵌入代碼。因為當(dāng)您嵌入代碼時,要將 CSS 放置在樣式標(biāo)記中,并在腳本標(biāo)記中使用 JavaScript,這會增加每次刷新網(wǎng)頁時必須加載的 HTML 代碼量。

    綁定文件? 不用擔(dān)心

    在過去,你可能會頻繁綁定 CSS 腳本到單個文件,以在 HTML 代碼中引用外部文件。在使用 HTTP1.1 協(xié)議時,這是一項合理的實(shí)踐,然而這一協(xié)議不再是必需的。

    感謝?HTTP/2,現(xiàn)在你可以通過使用多路技術(shù)將單個 TCP 連接以異步方式收發(fā) HTTP 請求和響應(yīng)。

    圖片

    圖片來源:?qnimate.com

    這意味著你不再需要頻繁地將多個腳本綁定到單個文件。

    2. 優(yōu)化 CSS 性能

    CSS,即級聯(lián)樣式表,能從?HTML 描述的內(nèi)容生成專業(yè)而又整潔的文件。很多?CSS 需要通過?HTTP 請求來引入(除非使用內(nèi)聯(lián) CSS),所以你要努力去除累贅的 CSS 文件,但要注意保留其重要特征。

    如果你的 Banner、插件和布局樣式是使用 CSS 保存在不同的文件內(nèi),那么,訪問者的瀏覽器每次訪問都會加載很多文件。雖然現(xiàn)在 HTTP/2 的存在,減少了這種問題的發(fā)生,但是在外部資源加載的情況下,仍會花費(fèi)較長時間。要了解如何減少 HTTP 請求以大幅度縮減加載時間,請閱讀WordPress 性能。

    此外,不少網(wǎng)站管理員在網(wǎng)頁中錯誤的使用?@import 指令?來引入外部樣式表。這是一個過時的方法,它會阻止瀏覽并行下載。link 標(biāo)簽才是最好的選擇,它也能提高網(wǎng)站的前端性能。多說一句,通過 link 標(biāo)簽請求加載的外部樣式表不會阻止并行下載。

    3.減少外部HTTP請求

    在很多情況下,網(wǎng)站的大部分加載時間來自于外部的 Http 請求。外部資源的加載速度隨著主機(jī)提供商的服務(wù)器架構(gòu)、地點(diǎn)等不同而不同。減少外部請求要做的第一步就是簡略地檢查網(wǎng)站。研究你網(wǎng)站的每個組成部分,消除任何影響訪問者體驗不好的成分。這些成分可能是:

    • 不必要的圖片
    • 沒用的 JavaScript 代碼
    • 過多的 css
    • 多余的插件

    在你去掉這些多余的成分之后,再對剩下的內(nèi)容進(jìn)行整理,如,壓縮工具、CDN 服務(wù)和預(yù)獲取(prefetching)等,這些都是管理 HTTP 請求的最佳選擇。除此之外,減少DNS路由查找教程會教你如何一步一步的減少外部?HTTP 請求。

    4. 壓縮 CSS, JS 和 HTML

    網(wǎng)頁前端的9個優(yōu)化技巧,提高web性能

    壓縮技術(shù)可以從文件中去掉多余的字符。你在編輯器中寫代碼的時候,會使用縮進(jìn)和注釋,這些方法無疑會讓你的代碼簡潔而且易讀,但它們也會在文檔中添加多余的字節(jié)。

    例如,這是一段壓縮之前的代碼。

    .entry-content?p?{

    ? ? font-size:?14px?!important;

    }

     

    .entry-content?ul?li?{

    ? ? font-size:?14px?!important;

    }

     

    .product_item?p?a?{

    ? ? ?color:?#000;

    ? ? ?padding:?10px?0px?0px?0;

    ? ? ?margin-bottom:?5px;

    ? ? ?border-bottom:?none;

    }

    把這段代碼壓縮后就成了這樣。

    .entry-content?p,.entry-content?ul?li{font-size:14px!important}.product_item?p?a{color:#000;padding:10px?0?0;margin-bottom:5px;border-bottom:none}

    使用壓縮工具可以非常簡單地把無用的字節(jié)從你的?CSS、JS 和 HTML 文件修剪掉。關(guān)于壓縮的相關(guān)信息,可以參閱如何壓縮 CSS、JS 和 HTML。

    5. 使用預(yù)先獲取

    網(wǎng)頁前端的9個優(yōu)化技巧,提高web性能

    預(yù)先獲取可以在真正需要之前通過取得必需的資源和相關(guān)數(shù)據(jù)來改善訪問用戶的瀏覽體驗,主要有3類預(yù)先獲取:

    • 鏈接預(yù)先獲取
    • DNS 預(yù)先獲取
    • 預(yù)先渲染

    在你離開當(dāng)前 web 頁面之前,使用預(yù)先獲取方式,對應(yīng)每個鏈接的 URL 地址,CSS,圖片和腳本都會被預(yù)先獲取。這保證了訪問者能在最短時間內(nèi)使用鏈接在畫面間切換。

    幸運(yùn)的是,預(yù)先獲取很容易實(shí)現(xiàn)。根據(jù)你想要使用的預(yù)先獲取形式,你只需在網(wǎng)站 HTML 中的鏈接屬性上增加 rel=”prefetch”,rel=”dns-prefetch”,或者 rel=”prerender” 標(biāo)記。

    6. 使用 CDN 和緩存提高速度

    內(nèi)容分發(fā)網(wǎng)絡(luò)能顯著提高網(wǎng)站的速度和性能。使用?CDN?時,您可以將網(wǎng)站的靜態(tài)內(nèi)容鏈接到全球各地的服務(wù)器擴(kuò)展網(wǎng)絡(luò)。如果您的網(wǎng)站觀眾遍布全球,這項功能十分有用。 CDN 允許您的網(wǎng)站訪問者從最近的服務(wù)器加載數(shù)據(jù)。如果您使用 CDN,您網(wǎng)站內(nèi)的文件將自動壓縮,以便在全球范圍內(nèi)快速分發(fā)。

    網(wǎng)頁前端的9個優(yōu)化技巧,提高web性能

    CDN 是一種緩存方法,可極大改善資源的分發(fā)時間,同時,它還能實(shí)現(xiàn)一些其他的緩存技術(shù),如,利用瀏覽器緩存。

    合理地設(shè)置瀏覽器緩存,能讓瀏覽器自動存儲某些文件,以便加快傳輸速度。此方法的配置可以直接在源服務(wù)器的配置文件中完成。

    了解更多有關(guān)緩存和不同類型的緩存方法,請參閱緩存定義。

    7. 壓縮文件

    網(wǎng)頁前端的9個優(yōu)化技巧,提高web性能

    雖然許多 CDN 服務(wù)可以壓縮文件,但如果不使用 CDN,您也可以考慮在源服務(wù)器上使用文件壓縮方法來改進(jìn)前端優(yōu)化。 文件壓縮能使網(wǎng)站的內(nèi)容輕量化,更易于管理。 最常用的文件壓縮方法之一是 Gzip。 這是縮小文檔、音頻文件、PNG圖像和等其他大文件的絕佳方法。

    Brotli?是一個比較新的文件壓縮算法,目前正變得越來越受歡迎。 此開放源代碼算法由來自 Google 和其他組織的軟件工程師定期更新,現(xiàn)已被證明比其他現(xiàn)有壓縮方法更好用。 這種算法的支持目前還比較少,但作為后起之秀指日可待。

    了解更多信息,請閱讀我們有關(guān)?Brotli?壓縮的完整文章。

    對于那些不懂得前端優(yōu)化的人來說,圖片可能會是一個“網(wǎng)站殺手”。大量的寫真集和龐大的高清圖片會阻塞網(wǎng)頁渲染速度。沒有優(yōu)化的高清圖片可能會有幾兆字節(jié)(mb)。因此適當(dāng)?shù)貙λ鼈冞M(jìn)行優(yōu)化可以改善網(wǎng)頁的前端性能。

    每個圖像文件都包含了一些與純照片或圖片無關(guān)的信息。比如 JPEG 圖片,它包含了日期、地點(diǎn)、相機(jī)型號和一些其他不相關(guān)的信息。你可以用一些如?Optimus?的優(yōu)化工具來刪除這些多余的圖像數(shù)據(jù)來精簡圖像的冗長的加載過程。因為?Optimus?是一個無損的圖片壓縮工具,它不會影響圖像畫質(zhì),只是壓縮圖片體積。

    另外,如果你想進(jìn)一步的優(yōu)化一張圖網(wǎng)頁前端的9個優(yōu)化技巧,提高web性能片,你可以使用有損壓縮,它會刪除一些圖片里面的數(shù)據(jù),因此質(zhì)量會受損。網(wǎng)頁前端的9個優(yōu)化技巧,提高web性能

    進(jìn)一步的學(xué)習(xí)有損和無損壓縮之間的區(qū)別,請閱讀我們完整的教程。

    9. 使用輕量級框架

    除非你只用現(xiàn)有的編碼知識構(gòu)建網(wǎng)站,不然,你可以嘗試使用一個好的前端框架來避免許多不必要的前端優(yōu)化錯誤。雖然有一些更大,更知名的框架能提供更多功能和選項,但它們不一定適合你的 Web 項目。

    所以說,不僅確定項目所需功能很重要,選擇合適的框架也很重要——它要在提供所需功能的同時保持輕量。最近許多框架都使用簡潔的 HTML,CSS 和 JavaScript 代碼。

    以下是幾項可以加快讀取的輕量級框架:

    • Pure
    • Skeleton
    • Milligram

    框架并不能代替網(wǎng)頁設(shè)計,編程和維護(hù)。舉個簡單的例子,我們假設(shè)框架是一個新房子。房子干凈整潔,但它是空的。在你添加家具,家電和裝飾品時,你有責(zé)任確保房子不會變得凌亂。同樣地,當(dāng)您使用了一個框架,您就有責(zé)任確保它不會被冗余的代碼,大圖片和過多的 HTTP 請求破壞。

    前端優(yōu)化 – 總結(jié)

    進(jìn)行前端優(yōu)化似乎需要花費(fèi)很大的精力,相信這篇應(yīng)用指南中的一些小技巧能幫你極大改善網(wǎng)站加載速度。網(wǎng)站加載地越快,則用戶體驗越佳。因此, 對前端進(jìn)行優(yōu)化能使給你和你的用戶都帶來益處。如果你有任何其他好的優(yōu)化方法,請在評論區(qū)留下您的寶貴建議。

    上一篇:

    下一篇:

    ? 同類閱讀

    分享
    ? ?
    ? ?
    国产剧情精品在线| 婷婷射精av这里只有精品| 国产综合免费精品久久久| 日韩人妻无码免费视频一区二区三区| 精品一区二区久久久久久久网精| 99精品国产在热久久无毒不卡| 久久精品无码专区免费青青| 亚洲av无码乱码国产精品| 中文字幕一精品亚洲无线一区 | 国产精品亚洲一区二区在线观看 | 日韩精品亚洲专区在线影视| 亚洲a∨无码精品色午夜| 国产精品久久99| 精品人妻AV一区二区三区| 日韩精品人妻系列无码专区免费| 久久精品国产一区| 国产精品偷伦视频观看免费| 国产AV午夜精品一区二区三| 99热在线日韩精品免费| 国产亚洲精品AA片在线观看不加载| 国产精品极品美女自在线观看免费 | 日韩精品高清在线| 精品国产日韩亚洲一区91| 成人国内精品视频在线观看| 精品久久久久久无码中文字幕一区| 国产精品反差婊在线观看| 交换国产精品视频一区| 亚洲国产成人久久精品软件| 亚洲AV无码国产精品永久一区 | 久久99精品国产麻豆婷婷| 国产免费伦精品一区二区三区| 国产精品亚洲精品日韩已方| 精品久久久久久无码人妻热| 精品免费久久久久国产一区| 精品久久久无码中文字幕天天| 久久久久久久久久免免费精品| 久久久99精品成人片中文字幕| 国产在线高清精品二区| 亚洲精品高清国产一线久久| 青青青青久久精品国产h| 久久久999久久久精品|