移動H5前端性能優(yōu)化

移動H5前端性能優(yōu)化指南

主要圍繞這篇博客吸耿,解析不清楚的地方

一、服務(wù)器緩存

使用緩存可以減少向服務(wù)器的請求數(shù)伴网,節(jié)省加載時間妆棒,所以所有靜態(tài)資源都要在服務(wù)器端設(shè)置緩存,并且盡量使用長Cache(長Cache資源的更新可使用時間戳)
如靜態(tài)內(nèi)容或者更新不頻繁的的動態(tài)內(nèi)容动分,如果緩存下來红选,下次Web服務(wù)器便可以在下次收到請求后立即拿出緩存好的響應(yīng)結(jié)果內(nèi)容返回給瀏覽器

1. Expires文件頭:
  ExpiresDefault "access plus 10 years"

如果使用了Expires文件頭,當(dāng)頁面內(nèi)容改變時就必須改變內(nèi)容的文件名玛瘸。內(nèi)容的文件名中加上版本號苟蹈,如 test_1.0.9.js。

2.ETags
  • Entity tags(ETags)(實體標簽)是web服務(wù)器和瀏覽器用于判斷瀏覽器緩存中的內(nèi)容和服務(wù)器中的原始內(nèi)容是否匹配的一種機制("實體"就是所說的"內(nèi)容"慧脱,包括圖片菱鸥、腳本、樣式表等)
  • 原始服務(wù)器通過含有ETag文件頭的響應(yīng)指定頁面內(nèi)容的ETag
HTTP/1.1 200 OK
Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT ETag: "10c24bc-4ab-457e1c1f"
Content-Length: 12195
  • 如果瀏覽器要驗證一個文件氮采,它會使用If-None-Match文件頭來把ETag傳回給原始服務(wù)器
 GET /i/yahoo.gif HTTP/1.1
Host: us.yimg.com
If-Modified-Since: Tue, 12 Dec 2006 03:03:59 GMT If-None-Match: "10c24bc-4ab-457e1c1f"
  • 如果ETag匹配鹊漠,就會返回一個304狀態(tài)碼茶行,這就節(jié)省了12195字節(jié)的響應(yīng)
    HTTP/1.1 304 Not Modified
    如果沒有使用ETag提供的靈活的驗證模式登钥,那么干脆把所有的ETag都去掉會更好
二、Gzip
  • 壓縮所有可能的文件類型可以減少文件體積
  • web客戶端都默認支持HTTP請求中有Accept-Encoding文件頭的壓縮格式:
    Accept-Encoding: gzip, deflate
  • Web服務(wù)器把壓縮方式通過響應(yīng)文件頭中的Content-Encoding來返回給瀏覽器
    Content-Encoding: gzip Gzip
三看锉、盡早刷新輸出緩沖
  • 把已經(jīng)編譯的好的部分HTML響應(yīng)文件先發(fā)送給瀏覽器塔鳍,這時瀏覽器就會可以下載文件中的內(nèi)容(腳本等)而后臺同時處理剩余的HTML頁面
四、LazyLoad
  • Lazy Load 是一個用 JavaScript 編寫的 jQuery 插件. 它可以延遲加載長頁面中的圖片. 在瀏覽器可視區(qū)域外的圖片不會被載入, 直到用戶將頁面滾動到它們所在的位置. 這與圖片預(yù)加載的處理方式正好是相反的.
五、Media Query
  • 直譯——“媒體查詢”
  • 有例子:
    <link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
    <link rel="stylesheet" media="screen and (max-width: 600px)" href="small.css" />
六蜡感、Srcset
  • 根據(jù)屏幕密度現(xiàn)實對應(yīng)尺寸圖片
七恃泪、避免使用DataURL
  • 圖片數(shù)據(jù)以base64字符串格式嵌入到了頁面中
<img src="data:image/gif;base64,R0lGODlhMwAxAIAAAAAAAP///yH5BAAAAAAALAAAAAAzADEAAAK8jI+pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw==">
八、使用classList代替className
  • 在HTML5 API里情连,頁面DOM里的每個節(jié)點上都有一個classList
    對象览效,程序員可以使用里面的方法新增、刪除锤灿、修改節(jié)點上的CSS類
九但校、TOUCH事件優(yōu)化
  • 使用touchstart、touchend代替click状囱,因快影響速度快。但應(yīng)注意Touch響應(yīng)過快袭艺,易引發(fā)誤操作
十叨粘、動畫優(yōu)化
  • 盡量使用CSS3動畫
  • 合理使用requestAnimationFrame動畫代替setTimeout
  • 適當(dāng)使用Canvas動畫 5個元素以內(nèi)使用css動畫门坷,5個以上使用Canvas動畫(iOS8可使用webGL)
十一袍镀、疑問
  • 高頻事件優(yōu)化
  • GPU加速

Reference
淺談Web緩存
Web程序優(yōu)化的最佳實踐(服務(wù)器篇)
Lazy Load
Media Query
Srcset
dataUrl
classList
requestAnimationFrame

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苇羡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锦茁,更是在濱河造成了極大的恐慌叉存,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稿存,死亡現(xiàn)場離奇詭異瞳秽,居然都是意外死亡,警方通過查閱死者的電腦和手機袖迎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門腺晾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悯蝉,“玉大人,你說我怎么就攤上這事泉粉。” “怎么了跺撼?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵讨彼,是天一觀的道長。 經(jīng)常有香客問我哩至,道長,這世上最難降的妖魔是什么卢佣? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任箭阶,我火速辦了婚禮,結(jié)果婚禮上嘹叫,老公的妹妹穿的比我還像新娘诈乒。我一直安慰自己,他們只是感情好怕磨,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布癌压。 她就那樣靜靜地躺著荆陆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪帜消。 梳的紋絲不亂的頭發(fā)上浓体,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音娄猫,去河邊找鬼生闲。 笑死,一個胖子當(dāng)著我的面吹牛碍讯,可吹牛的內(nèi)容都是我干的捉兴。 我是一名探鬼主播录语,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼禾乘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了失暂?” 一聲冷哼從身側(cè)響起鳄虱,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎决记,沒想到半個月后倍踪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡扩借,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年潮罪,在試婚紗的時候發(fā)現(xiàn)自己被綠了领斥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡何恶,死狀恐怖嚼黔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唬涧,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響陌僵,放射性物質(zhì)發(fā)生泄漏创坞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一偎谁、第九天 我趴在偏房一處隱蔽的房頂上張望纲堵。 院中可真熱鬧,春花似錦席函、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锻全,卻和暖如春蒜危,著一層夾襖步出監(jiān)牢的瞬間睹耐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工响委, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窖梁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓邀窃,卻偏偏與公主長得像假哎,于是被迫代替她去往敵國和親瞬捕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容