學習筆記《前端性能調優》

效果
無優化 單個JS文件,大于10M
懶加載 多個JS文件,最大的3M
uglify 多個JS文件,最大的1.5M
gzip 多個JS文件,最大的473K
代碼層面 todo

懶加載

Vue 的文檔里面有詳細的說明,利用的是 webpack 的分包機制,將單獨的 app.js 文件依照路由系統打包成許多不同的文件,當用戶訪問的某個路由的時候才產生加載動作

https://router.vuejs.org/en/advanced/lazy-loading.html

uglify

laravel-mix 在執行 npm run prod 的時候會自動調用 uglify,將前端代碼進行壓縮處理:

https://laravel.com/docs/5.5/mix
https://github.com/mishoo/UglifyJS2

gzip

在 Nginx 或者 Apache 上打開配置,就可以實現 gzip

http://nginx.org/en/docs/http/ngx_http_gzip_module.html

代碼層面

比如去掉一些可以不依賴的庫,換某些庫的lite版等等,某人建議的是每個JS文件的大小不要超過300K,傳輸時間在3s以內

分析一個JS文件的構成,是很重要的進行代碼層面優化的前提,webpack 官方推薦了一些工具(4個),可以做 bundle analysis

官方文檔:https://webpack.js.org/guides/code-splitting/#bundle-analysis

Webpack Bundle Analyzer 是比較熟悉的一個,這里是一個使用教程:
https://www.youtube.com/watch?v=ltlxjq4YEKU

在 laravel-mix 中的配置可以參考:
https://github.com/JeffreyWay/laravel-mix/issues/1216

最終的效果如:

前端性能調優的目標

單個JS文件在300K以內

整個頁面的載入時間期望值是1.5s可接受時間是3s,絕對不能超過5s,否則90%用戶都會流失

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • GitChat技術雜談 前言 本文較長,為了節省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,715評論 7 110
  • 構建工具逐漸成為前端工程必備的工具,Grunt、Gulp、Fis、Webpack等等,譯者有幸使用過Fis、Gul...
    陳堅生閱讀 6,054評論 4 64
  • 在現在的前端開發中,前后端分離、模塊化開發、版本控制、文件合并與壓縮、mock數據等等一些原本后端的思想開始...
    Charlot閱讀 5,497評論 1 32
  • 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 webpack介紹和使用 一、webpack介紹 1、由來 ...
    it筱竹閱讀 11,233評論 0 21
  • 不知不覺她已經寫了8個小時,從凌晨1點到早上九點。腸鳴音使她從寫作的深淵中驚醒。她于是放下筆,離開椅子,伸了伸懶腰...
    小林云閱讀 180評論 0 0