關(guān)于前端性能優(yōu)化——大總結(jié)

從五個(gè)方面來分析前端性能優(yōu)化,為面試而打造。

優(yōu)化HTML

  1. 避免圖片和 iFrame等src屬性為空。src屬性為空,會(huì)重新加載當(dāng)前頁面,影響速度和效率
  2. 盡量避免在HTML標(biāo)簽中寫 Style屬性
  3. 把CSS放在頁面頭部,把JavaScript代碼放在頁面底部,這樣避免阻塞頁面渲染而使頁面出現(xiàn)長(zhǎng)時(shí)間的空白

優(yōu)化CSS

  1. 避免使用CSS表達(dá)式、高級(jí)選擇器、通配選擇器,盡量使用id、class選擇器設(shè)置樣式,避免使用style屬性設(shè)置行內(nèi)樣式
  2. 壓縮、合并CSS
  3. 當(dāng)需要設(shè)置的樣式很多時(shí),設(shè)置 className而不是直接操作 Style
  4. 正確使用display屬性,display屬性會(huì)影響頁面的渲染
  5. 不濫用float
  6. 不聲明過多的font-size
  7. 當(dāng)值為0時(shí)不需要單位
  8. 盡量使用CSS3動(dòng)畫

優(yōu)化JavaScript

  1. 少用全局變量,緩存DOM節(jié)點(diǎn)查找的結(jié)果,減少I/O讀取操作
  2. 用 innerHTML代替DOM操作,減少DOM操作次數(shù),
    優(yōu)化 JavaScript性能,用 setTimeout避免頁面失去響應(yīng)
  3. 避免使用with(with會(huì)創(chuàng)建自己的作用域,增加作用域鏈的長(zhǎng)度)
  4. 多個(gè)變量聲明合并
  5. 合理使用 requestAnimationFrame動(dòng)畫代替 setTimeOut
  6. 使用 touchstart、 touchend代替 click
  7. 適當(dāng)使用 canvas動(dòng)畫
  8. 盡量避免在高頻事件(如 TouchMove、 Scroll事件)中修改視圖,這會(huì)導(dǎo)致多次渲染

利用緩存優(yōu)化服務(wù)器端

  1. 緩存Ajax,使用CDN,添加 Expires頭,在服務(wù)器端配置Etag
  2. 使用CDN托管文件,讓用戶更快速地訪問
  3. 可以使用多個(gè)域名來緩存靜態(tài)文件,延長(zhǎng)靜態(tài)資源緩存時(shí)間,合理設(shè)置資源的過期時(shí)間
  4. 開啟服務(wù)器端的Gzip壓縮,對(duì)文本資源非常有效
  5. 減少cookie頭信息的大小,頭信息越大,資源傳輸速度越慢

請(qǐng)求數(shù)量

優(yōu)化圖片加載
  1. 圖片懶加載??梢詾轫撁嫣砑右粋€(gè)滾動(dòng)條事件,判斷圖片是否在可視區(qū)域內(nèi)或者即將進(jìn)入可視區(qū)域,優(yōu)先加載。
  2. 如果為幻燈片、相冊(cè)文件等,可以使用圖片預(yù)加載技術(shù),對(duì)于當(dāng)前展示圖片的前一張圖片和后一張圖片優(yōu)先下載。
  3. 如果圖片為CSS圖片,可以使用精靈圖合并,減少HTTP請(qǐng)求
  4. 如果圖片過大,可以使用特殊編碼的圖片,加載時(shí)會(huì)先加載一張壓縮得特別小的縮略圖,以提高用戶體驗(yàn)。
  5. 如果圖片展示區(qū)域小于圖片的真實(shí)大小,則應(yīng)在服務(wù)器端根據(jù)業(yè)務(wù)需要先行進(jìn)行圖片壓縮,圖片壓縮后,圖片大小與展示的就一致了。
  6. 為圖片標(biāo)明高度和寬度
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于前端性能優(yōu)化問題詳解 出處:http://segmentfault.com/blogs 前端性能優(yōu)化指南 AJ...
    bennnnn閱讀 1,699評(píng)論 2 4
  • 1.減少HTTP請(qǐng)求 基本原理: 在瀏覽器(客戶端)和服務(wù)器發(fā)生通信時(shí),就已經(jīng)消耗了大量的時(shí)間,尤其是在網(wǎng)絡(luò)情況比...
    rain_li閱讀 402評(píng)論 1 2
  • 前端性能優(yōu)化: 前端性能優(yōu)化是個(gè)經(jīng)久不息的話題,也是面試??停裉旌?jiǎn)單總結(jié)下,讓大家有初步的了解 1.代碼級(jí)的優(yōu)化...
    夜半暖人心閱讀 330評(píng)論 0 1
  • 前端性能優(yōu)化的目的: 從用戶角度而言:優(yōu)化能夠讓頁面加載得更快、對(duì)用戶的操作響應(yīng)的更及時(shí),能夠給用戶提供更為良好的...
    軌跡閱讀 454評(píng)論 0 0
  • 前端性能優(yōu)化主要關(guān)注的點(diǎn)就是速度,具體分為加載性能和運(yùn)行性能。 加載性能 檢查加載性能可以參考window.per...
    瓢鰭小蝦虎閱讀 148評(píng)論 0 0

友情鏈接更多精彩內(nèi)容