先引入一片文章先:css
優化,在前端是一個很是重要的領域來着,其涉及到前端開發中的方方面面,不只要在代碼編寫規範,還要對各類資源進行合理的處理等等。可是,前端優化也不是盲目地進行優化,要穩抓穩打,該優化時優化,不應優化時就不要優化啦。前端
一、HTML 很容易被網絡爬蟲識別,所以搜索引擎能夠根據網站的內容在必定程度上實時更新。在寫 HTML 的時候,你應該嘗試讓它簡潔而有效。此外,在 HTML 文檔中引用外部資源的時候也須要遵循一些最佳實踐方法。web
二、把 CSS 放在 HTML 的上面部分,文檔頭以內,這能夠確保正常的渲染過程。這個策略不能提升網站的加載速度,但它不會讓訪問者長時間看着空白屏幕或者無格式的文本(FOUT)等待。若是網頁大部分可見元素已經加載出來了,訪問者才更有可能等待加載整個頁面,從而帶來對前端的優化效果。這就是知覺性能。算法
三、將 JavaScript 放置在 head 標籤內或 HTML 文檔的上部,這會阻塞 HTML 和 CSS 元素的加載過程。這個錯誤會致使頁面加載時間增加,增長用戶等待時間,容易讓人感到不耐煩而放棄對網站的訪問。不過,您能夠經過將 JavaScript 屬性置於 HTML 底部來避免此問題。瀏覽器
四、在過去,你可能會頻繁綁定 CSS 腳本到單個文件,以在 HTML 代碼中引用外部文件。在使用 HTTP1.1 協議時,這是一項合理的實踐,然而這一協議再也不是必需的。感謝 HTTP/2,如今你能夠經過使用多路技術將單個 TCP 鏈接以異步方式收發 HTTP 請求和響應。這意味着你再也不須要頻繁地將多個腳本綁定到單個文件。緩存
五、有的網站管理員在網頁中錯誤的使用 @import 指令 來引入外部樣式表。這是一個過期的方法,它會阻止瀏覽並行下載。link 標籤纔是最好的選擇,它也能提升網站的前端性能。服務器
六、在不少狀況下,網站的大部分加載時間來自於外部的 Http 請求。外部資源的加載速度隨着主機提供商的服務器架構、地點等不一樣而不一樣。減小外部請求要作的第一步就是簡略地檢查網站。研究你網站的每一個組成部分,消除任何影響訪問者體驗很差的成分。這些成分多是:沒必要要的圖片;沒用的 JavaScript 代過多的 css;多餘的插件等等。去掉這些多餘的成分以後,再對剩下的內容進行整理,如,壓縮工具、CDN 服務和預獲取(prefetching)等,這些都是管理 HTTP 請求的最佳選擇。網絡
七、壓縮技術能夠從文件中去掉多餘的字符。你在編輯器中寫代碼的時候,會使用縮進和註釋,這些方法無疑會讓你的代碼簡潔並且易讀,但它們也會在文檔中添加多餘的字節。使用壓縮工具能夠很是簡單地把無用的字節從你的 CSS、JS 和 HTML 文件修剪掉。架構
八、預先獲取能夠在真正須要以前經過取得必需的資源和相關數據來改善訪問用戶的瀏覽體驗,主要有3類預先獲取:連接預先獲取;DNS 預先獲取;預先渲染。在你離開當前 web 頁面以前,使用預先獲取方式,對應每一個連接的 URL 地址,CSS,圖片和腳本都會被預先獲取。這保證了訪問者能在最短期內使用連接在畫面間切換。幸運的是,預先獲取很容易實現。根據你想要使用的預先獲取形式,你只需在網站 HTML 中的連接屬性上增長 rel="prefetch",rel="dns-prefetch",或者 rel="prerender" 標記。
九、分發網絡能顯著提升網站的速度和性能。使用 CDN 時,您能夠將網站的靜態內容連接到全球各地的服務器擴展網絡。若是您的網站觀衆遍及全球,這項功能十分有用。 CDN 容許您的網站訪問者從最近的服務器加載數據。若是您使用 CDN,您網站內的文件將自動壓縮,以便在全球範圍內快速分發。CDN 是一種緩存方法,可極大改善資源的分發時間,同時,它還能實現一些其餘的緩存技術,如,利用瀏覽器緩存。合理地設置瀏覽器緩存,能讓瀏覽器自動存儲某些文件,以便加快傳輸速度。此方法的配置能夠直接在源服務器的配置文件中完成。
十、雖然許多 CDN 服務能夠壓縮文件,但若是不使用 CDN,您也能夠考慮在源服務器上使用文件壓縮方法來改進前端優化。 文件壓縮能使網站的內容輕量化,更易於管理。 最經常使用的文件壓縮方法之一是 Gzip。 這是縮小文檔、音頻文件、PNG圖像和等其餘大文件的絕佳方法。
Brotli 是一個比較新的文件壓縮算法,目前正變得愈來愈受歡迎。 此開放源代碼算法由來自 Google 和其餘組織的軟件工程師按期更新,現已被證實比其餘現有壓縮方法更好用。
對於那些不懂得前端優化的人來講,圖片可能會是一個「網站殺手」。大量的寫真集和龐大的高清圖片會阻塞網頁渲染速度。沒有優化的高清圖片可能會有幾兆字節(mb)。所以適當地對它們進行優化能夠改善網頁的前端性能。
每一個圖像文件都包含了一些與純照片或圖片無關的信息。好比 JPEG 圖片,它包含了日期、地點、相機型號和一些其餘不相關的信息。你能夠用一些如 Optimus 的優化工具來刪除這些多餘的圖像數據來精簡圖像的冗長的加載過程。由於 Optimus 是一個無損的圖片壓縮工具,它不會影響圖像畫質,只是壓縮圖片體積。
另外,若是你想進一步的優化一張圖片,你可使用有損壓縮,它會刪除一些圖片裏面的數據,所以質量會受損。
未完待續......