網(wǎng)頁(yè)加載速度優(yōu)化技巧的方案詳解
引言
由于最近工作需求,需要極大優(yōu)化用戶的加載速度。
下面我就從網(wǎng)絡(luò)請(qǐng)求優(yōu)化的方面進(jìn)行一次總結(jié)吧。??
部分圖片采用雪碧圖
雪碧圖也叫CSS精靈, 是一種CSS圖像合成技術(shù),將多張圖片何為一張從而減少網(wǎng)絡(luò)請(qǐng)求。
如b站的圖標(biāo):https://s1.hdslb.com/bfs/stat...
部分圖片采用svg
SVG 是使用 XML 來(lái)描述二維圖形和繪圖程序的語(yǔ)言。
SVG 與 JPEG 和 GIF 圖像比起來(lái),尺寸更小,且可壓縮性更強(qiáng),加載速度更快。并且 SVG 可伸縮,圖像可在任何的分辨率下被高質(zhì)量地打印。
如這個(gè)loading圖標(biāo):
<?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgb(255, 255, 255); display: block; shape-rendering: auto;" width="200px" height="200px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"> <g transform="rotate(0 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(30 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(60 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.75s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(90 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(120 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(150 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(180 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(210 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(240 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.25s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(270 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(300 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"></animate> </rect> </g><g transform="rotate(330 50 50)"> <rect x="47" y="24" rx="3" ry="6" width="6" height="12" fill="#fe718d"> <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animate> </rect> </g> <!-- [ldio] generated by https://loading.io/ --></svg>
部分圖片轉(zhuǎn) base64 編碼
Base64就是一種基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的方法。
將部分圖片轉(zhuǎn)為 base64 編碼可減少網(wǎng)絡(luò)請(qǐng)求、圖片服務(wù)器壓力利于頁(yè)面加載。
壓縮 html、css、js 等靜態(tài)資源
編寫代碼時(shí)我們常使用縮進(jìn)和換行,這樣在無(wú)形中增加了代碼文件體積。
在相同的網(wǎng)絡(luò)情況洗,我們的代碼體積越小,用戶在訪問(wèn)我們的網(wǎng)頁(yè)時(shí)加載速度就更快。
對(duì)于 html、css 在發(fā)布到線上版本前,我們可將代碼所有的縮進(jìn)和換行刪除,從而降低代碼體積。如“知乎”:
對(duì)于 js 在發(fā)布到線上版本前,我們可將代碼所有的縮進(jìn)和換行刪除的同時(shí),將所有變量命名和方法名替換為更簡(jiǎn)短的單詞,從而降低代碼體積。如“知乎”:
CDN
CDN(Content Delivery Network)是指內(nèi)容分發(fā)網(wǎng)絡(luò),也稱為內(nèi)容傳送網(wǎng)絡(luò),這個(gè)概念始于1996年,是美國(guó)麻省理工學(xué)院的一個(gè)研究小組為改善互聯(lián)網(wǎng)的服務(wù)質(zhì)量而提出的。
我們將html、css、js、圖標(biāo)、字體、視頻、音樂(lè)等靜態(tài)資源部署到cdn上的各個(gè)節(jié)點(diǎn),可極大優(yōu)化在不同地區(qū)、不同網(wǎng)絡(luò)運(yùn)營(yíng)商用戶的網(wǎng)絡(luò)請(qǐng)求速度。
Gzip
HTTP 協(xié)議上的 Gzip 編碼是一種用來(lái)改進(jìn) WEB 應(yīng)用程序性能的技術(shù)。大流量的 WEB 站點(diǎn)常常使用 Gzip 壓縮技術(shù)來(lái)讓用戶感受更快的速度。
使用 Gzip 壓縮可將文件大小壓縮將近三分之二的大?。?/p>
以上就是網(wǎng)頁(yè)加載速度優(yōu)化技巧的方案詳解的詳細(xì)內(nèi)容,更多關(guān)于網(wǎng)頁(yè)加載速度優(yōu)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于JS實(shí)現(xiàn)簡(jiǎn)單的樣式切換效果代碼
這篇文章主要介紹了基于JS實(shí)現(xiàn)簡(jiǎn)單的樣式切換效果代碼,涉及簡(jiǎn)單的javascript控制頁(yè)面元素樣式變換的技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09微信小程序以7天為周期連續(xù)簽到7天功能效果的示例代碼
這篇文章主要介紹了微信小程序以7天為周期連續(xù)簽到7天功能效果的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08小程序中canvas的drawImage方法參數(shù)使用詳解
這篇文章主要介紹了小程序中canvas的drawImage方法參數(shù)使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07javascript使用for循環(huán)批量注冊(cè)的事件不能正確獲取索引值的解決方法
這篇文章主要介紹了javascript使用for循環(huán)批量注冊(cè)的事件不能正確獲取索引值的解決方法,對(duì)比分析了出現(xiàn)問(wèn)題的代碼與修改后的代碼,并給出了采用閉包實(shí)現(xiàn)的方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12JavaScript實(shí)現(xiàn)添加、查找、刪除元素
這篇文章主要匯總介紹了JavaScript實(shí)現(xiàn)添加、查找、刪除元素的方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-07-07JS數(shù)組屬性去重并校驗(yàn)重復(fù)數(shù)據(jù)
這篇文章主要介紹了JS數(shù)組屬性去重并校驗(yàn)重復(fù)數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01