日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
這么多前端優(yōu)化點你都記得住嗎?

圍繞前端的性能多如牛毛,涉及到方方面面,我們將圍繞 PC 瀏覽器和移動端瀏覽器的優(yōu)化策略進行羅列 注意,是羅列不是展開,遇到不會不懂的點還請站外擴展

開車速度有點快,坐穩(wěn)了。

PC 瀏覽器前端優(yōu)化策略

PC 端優(yōu)化的策略很多,如 YSlow(YSlow 是 Yahoo 發(fā)布的一款 Firefox 插件,現(xiàn) Chrome 也可安裝,可以對網(wǎng)站的頁面性能進行分析,提出對該頁面性能優(yōu)化的建議)原則,或者 Chrome 自帶的 Audits 等,總結(jié)起來主要包括網(wǎng)絡加載類、頁面渲染類、CSS 優(yōu)化類、JavaScript 執(zhí)行類、緩存類、圖片類、架構(gòu)協(xié)議類等幾類,下面逐一介紹。

網(wǎng)絡加載類

(1)減少 HTTP 資源請求次數(shù)

在前端頁面中,通常建議盡可能合并靜態(tài)資源圖片、JavaScript 或 CSS 代碼,減少頁面請求數(shù)和資源請求消耗,這樣可以縮短頁面首次訪問的用戶等待時間。通過構(gòu)建工具合并雪碧圖、CSS、JavaScript 文件等都是為了減少 HTTP 資源請求次數(shù)。另外也要盡量避免重復的資源,防止增加多余請求。

(2)減小 HTTP 請求大小

除了減少 HTTP 資源請求次數(shù),也要盡量減小每個 HTTP 請求的大小。如減少沒必要的圖片、JavaScript、CSS 及 HTML 代碼,對文件進行壓縮優(yōu)化,或者使用 gzip 壓縮傳輸內(nèi)容等都可以用來減小文件大小,縮短網(wǎng)絡傳輸?shù)却龝r延。前面我們使用構(gòu)建工具來壓縮靜態(tài)圖片資源以及移除代碼中的注釋并壓縮,目的都是為了減小 HTTP 請求的大小。

(3)將 CSS 或 JavaScript 放到外部文件中,避免使用 style或script或 標簽直接引入

在 HTML 文件中引用外部資源可以有效利用瀏覽器的靜態(tài)資源緩存,但有時候在移動端頁面 CSS 或 JavaScript 比較簡單的情況下為了減少請求,也會將 CSS 或 JavaScript 直接寫到 HTML 里面,具體要根據(jù) CSS 或 JavaScript 文件的大小和業(yè)務的場景來分析。如果 CSS 或 JavaScript 文件內(nèi)容較多,業(yè)務邏輯較復雜,建議放到外部文件引入。

(4)避免頁面中空的 href 和 src

標簽的 href 屬性為空,或

(9)使用靜態(tài)資源 CDN 來存儲文件

如果條件允許,可以利用 CDN 網(wǎng)絡加快同一個地理區(qū)域內(nèi)重復靜態(tài)資源文件的響應下載速度,縮短資源請求時間。

(10)使用 CDN Combo 下載傳輸內(nèi)容

CDN Combo 是在 CDN 服務器端將多個文件請求打包成一個文件的形式來返回的技術(shù),這樣可以實現(xiàn) HTTP 連接傳輸?shù)囊淮涡詮陀?,減少瀏覽器的 HTTP 請求數(shù),加快資源下載速度。例如同一個域名 CDN 服務器上的 a.js,b.js,c.js 就可以按如下方式在一個請求中下載。

(11)使用可緩存的 AJAX

對于返回內(nèi)容相同的請求,沒必要每次都直接從服務端拉取,合理使用 AJAX 緩存能加快 AJAX 響應速度并減輕服務器壓力。

$.ajax({

url : url,

type : 'get',

cache : true, //推薦使用緩存

data : {},

success (){//...},

error (){//...}

});

(12)使用 GET 來完成 AJAX 請求

使用 XMLHttpRequest 時,瀏覽器中的 POST 方法會發(fā)起兩次 TCP 數(shù)據(jù)包傳輸,首先發(fā)送文件頭,然后發(fā)送 HTTP 正文數(shù)據(jù)。而使用 GET 時只發(fā)送頭部,所以在拉取服務端數(shù)據(jù)時使用 GET 請求效率更高。

$.ajax({

url : url,

type : 'get', //推薦使用get完成請求

data : {},

success (){//...},

error(){//...}

});

(13)減少 Cookie 的大小并進行 Cookie 隔離

HTTP 請求通常默認帶上瀏覽器端的 Cookie 一起發(fā)送給服務器,所以在非必要的情況下,要盡量減少 Cookie 來減小 HTTP 請求的大小。對于靜態(tài)資源,盡量使用不同的域名來存放,因為 Cookie 默認是不能跨域的,這樣就做到了不同域名下靜態(tài)資源請求的 Cookie 隔離。

(14)縮小 favicon.ico 并緩存

有利于 favicon.ico 的重復加載,因為一般一個 Web 應用的 favicon.ico 是很少改變的。

(15)推薦使用異步 JavaScript 資源

異步的 JavaScript 資源不會阻塞文檔解析,所以允許在瀏覽器中優(yōu)先渲染頁面,延后加載腳本執(zhí)行。例如 JavaScript 的引用可以如下設置,也可以使用模塊化加載機制來實現(xiàn)。

使用 async 時,加載和渲染后續(xù)文檔元素的過程和 main.js 的加載與執(zhí)行是并行的。使用 defer 時,加載后續(xù)文檔元素的過程和 main.js 的加載是并行的,但是 main.js 的執(zhí)行要在頁面所有元素解析完成之后才開始執(zhí)行。

(16)消除阻塞渲染的 CSS 及 JavaScript

對于頁面中加載時間過長的 CSS 或 JavaScript 文件,需要進行合理拆分或延后加載,保證關(guān)鍵路徑的資源能快速加載完成。

(17)避免使用 CSS import 引用加載 CSS

CSS 中的 @import 可以從另一個樣式文件中引入樣式,但應該避免這種用法,因為這樣會增加 CSS 資源加載的關(guān)鍵路徑長度,帶有 @import 的 CSS 樣式需要在 CSS 文件串行解析到 @import 時才會加載另外的 CSS 文件,大大延后 CSS 渲染完成的時間。


頁面渲染類

1.把 CSS 資源引用放到 HTML 文件頂部

一般推薦將所有 CSS 資源盡早指定在 HTML 文檔
中,這樣瀏覽器可以優(yōu)先下載 CSS 并盡早完成頁面渲染。

2.JavaScript 資源引用放到 HTML 文件底部

JavaScript 資源放到 HTML 文檔底部可以防止 JavaScript 的加載和解析執(zhí)行對頁面渲染造成阻塞。由于 JavaScript 資源默認是解析阻塞的,除非被標記為異步或者通過其他的異步方式加載,否則會阻塞 HTML DOM 解析和 CSS 渲染的過程。

3.盡量預先設定圖片等大小

在加載大量的圖片元素時,盡量預先限定圖片的尺寸大小,否則在圖片加載過程中會更新圖片的排版信息,產(chǎn)生大量的重排

4.不要在 HTML 中直接縮放圖片

在 HTML 中直接縮放圖片會導致頁面內(nèi)容的重排重繪,此時可能會使頁面中的其他操作產(chǎn)生卡頓,因此要盡量減少在頁面中直接進行圖片縮放。

5.減少 DOM 元素數(shù)量和深度

HTML 中標簽元素越多,標簽的層級越深,瀏覽器解析 DOM 并繪制到瀏覽器中所花的時間就越長,所以應盡可能保持 DOM 元素簡潔和層級較少。

圖片

圖片

6.盡量避免在選擇器末尾添加通配符

CSS 解析匹配到 渲染樹的過程是從右到左的逆向匹配,在選擇器末尾添加通配符至少會增加一倍多計算量。

7.減少使用關(guān)系型樣式表的寫法

直接使用唯一的類名即可最大限度的提升渲染引擎繪制渲染樹等效率

8.盡量減少使用 JS 動畫

JS 直接操作 DOM 極容易引起頁面的重排

9.CSS 動畫使用 translate、scale 代替 top、height

盡量使用 CSS3 的 translate、scale 屬性代替 top、left 和 height、width,避免大量的重排計算

10.盡量避免使用

、