減小資源大小能夠加快網頁顯示速度,因此要對 HTML
、 CSS
、 JavaScript
等進行代碼壓縮,並在服務器端設置 GZip
css
GZip
寫在 HTML
頭部的 JavaScript
(無異步),和寫在 HTML
標籤中的 Style
會阻塞頁面的渲染,所以 CSS
放在頁面頭部並使用 Link
方式引入,避免在 HTML
標籤中寫 Style
, JavaScript
放在頁面尾部或使用異步方式加載css3
首屏的快速顯示,能夠大大提高用戶對頁面速度的感知,所以應儘可能針對首屏的快速顯示作優化。web
將不影響首屏的資源和當前屏幕資源不用的資源放到用戶須要時才加載,能夠大大提高重要資源的顯示速度和下降整體流量。算法
LazyLoad Media Query
大型重資源頁面(如遊戲)可以使用增長 Loading
的方法,資源加載完成後再顯示頁面。但 Loading
時間過長,會形成用戶流失。瀏覽器
對用戶行爲分析,能夠在當前頁加載下一頁資源,提高速度。服務器
Loading Loading
圖片是最佔流量的資源,所以儘可能避免使用他,使用時選擇最合適的格式(實現需求的前提下,以大小判斷),合適的大小,而後使用智圖壓縮,同時在代碼中用 Srcset
來按需顯示異步
CSS3
2. 使用 SVG
3. 使用 IconFont
)Srcset
webP
優於 JPG
2. PNG8
優於 GIF
)1014KB
2. 不寬於 640
(基於手機屏幕通常寬度))Cookie
會影響加載速度,因此靜態資源域名不使用 Cookie
。性能
重定向會影響加載速度,因此在服務器正確設置避免重定向。優化
第三方資源不可控會影響頁面的加載和顯示,所以要異步加載第三方資源動畫
由於手機瀏覽器同時響應請求爲4個請求( Android
支持4個, iOS
5後可支持6個),因此要儘可能減小頁面的請求數,首次加載同時請求數不能超過4個
CSS
、 JavaScript
腳本處理不當會阻塞頁面加載、渲染,所以在使用時需當注意
CSS
寫在頭部, JavaScript
寫在尾部或異步iFrame
等的空 Src
,空 Src
會從新加載當前頁面,影響速度和效率。CSS
、J avaScript
等中屢次重置圖片大小,屢次重設圖片大小會引起圖片的屢次重繪,影響性能DataURL
, DataURL
圖片沒有使用圖片的壓縮算法文件會變大,而且要解碼後再渲染,加載慢耗時長儘可能避免寫在HTML標籤中寫 Style
屬性
.translate3d{ -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
CSS表達式的執行需跳出CSS樹的渲染,所以請避免CSS表達式。
Float在渲染時計算量比較大,儘可能減小使用
爲了瀏覽器的兼容性和性能,值爲 0
時不要帶單位
Class
而不是 Style
,使用 classList
代替 className
document.write
drawImage
使用 touchstart
、 touchend
代替 click
,因快影響速度快。但應注意 Touch
響應過快,易引起誤操做
<meta name=」viewport」 content=」width=device-width, initial-scale=1″>
CSS3
動畫requestAnimationFrame
動畫代替 setTimeout
Canvas
動畫 5
個元素之內使用 css
動畫, 5
個以上使用 Canvas
動畫( iOS8
可以使用 webGL
)Touchmove
、 Scroll
事件可致使屢次渲染
requestAnimationFrame