當今數字世界,存在著無數的網站,每天都需要處理各種不同的原因的訪問。然而,這些網站中有很大一部分顯得笨重,使用起來也很麻煩。沒怎么優化的網站會被各種各樣的問題困擾,包括加載時間、不支持移動設備、瀏覽器兼容性問題,等等。
這篇文章講述可以幫助改善優化前端的技術,非常有用。主要內容有清理代碼、壓縮圖片、壓縮外部資源、使用CDN,以及一些其它方法。這些方法會為你的網站帶顯著的速度提升和整體性能提升。
1.清理HTML文檔
HTML,即超文本標記語言,幾乎是所有網站的支柱。HTML為網頁帶來標題、子標題、列表和其它一些文檔結構的格式。在最近更新的HTML5中,甚至可以創建圖表。
HTML很容易被網絡爬蟲識別,因此搜索引擎可以根據網站的內容在一定程度上實時更新。在寫HTML的時候,你應該嘗試讓它簡潔而有效。此外,在HTML文檔中引用外部資源的時候也需要遵循一些最佳實踐方法。
恰當放置CSS
Web設計者喜歡在網頁建立起主要的HTML骨架之后再來創建樣式表。這樣一來,網頁中的樣式表往往會放在HTML的后面,接近文檔結束的地方。然而推薦的做法是把CSS放在HTML的上面部分,文檔頭之內,這可以確保正常的渲染過程。
這個策略不能提高網站的加載速度,但它不會讓訪問者長時間看著空白屏幕或者無格式的文本(FOUT)等待。如果網頁大部分可見元素已經加載出來了,訪問者才更有可能等待加載整個頁面,從而帶來對前端的優化效果。這就是知覺性能。
如果你想學習前端可以來這個群,首先是二九一,中間是八五一,最后是一八九,里面可以學習和交流,也有大量的學習資料可以下載。
正確放置Javascript
另一方面,如果將JavaScript放置在head標簽內或HTML文檔的上部,這會阻塞HTML和CSS元素的加載過程。這個錯誤會導致頁面加載時間增長,增加用戶等待時間,容易讓人感到不耐煩而放棄對網站的訪問。不過,您可以通過將JavaScript屬性置于HTML底部來避免此問題。
此外,在使用JavaScript時,人們通常喜歡用異步腳本加載。這會阻止標簽在HTML中的呈現過程,如,在文檔中間的情況。
雖然對于網頁設計師來說,HTML是最值得使用的工具之一,但它通常要與CSS和JavaScript一起使用,這可能會導致網頁瀏覽速度減慢。 雖然CSS和JavaScript有利于網頁優化,但使用時也要注意一些問題。使用CSS和JavaScript時,要避免嵌入代碼。因為當您嵌入代碼時,要將CSS放置在樣式標記中,并在腳本標記中使用JavaScript,這會增加每次刷新網頁時必須加載的HTML代碼量。
綁定文件?不用擔心
在過去,你可能會頻繁綁定CSS腳本到單個文件,以在HTML代碼中引用外部文件。在使用HTTP1.1協議時,這是一項合理的實踐,然而這一協議不再是必需的。
感謝HTTP/2,現在你可以通過使用多路技術將單個TCP連接以異步方式收發HTTP請求和響應。
圖片來源:qnimate.com
這意味著你不再需要頻繁地將多個腳本綁定到單個文件。
2.優化CSS性能
CSS,即級聯樣式表,能從HTML描述的內容生成專業而又整潔的文件。很多CSS需要通過HTTP請求來引入(除非使用內聯CSS),所以你要努力去除累贅的CSS文件,但要注意保留其重要特征。
如果你的Banner、插件和布局樣式是使用CSS保存在不同的文件內,那么,訪問者的瀏覽器每次訪問都會加載很多文件。雖然現在HTTP/2的存在,減少了這種問題的發生,但是在外部資源加載的情況下,仍會花費較長時間。要了解如何減少HTTP請求以大幅度縮減加載時間,請閱讀WordPress性能。
此外,不少網站管理員在網頁中錯誤的使用@import指令來引入外部樣式表。這是一個過時的方法,它會阻止瀏覽并行下載。link標簽才是最好的選擇,它也能提高網站的前端性能。多說一句,通過link標簽請求加載的外部樣式表不會阻止并行下載。
3.減少外部HTTP請求
在很多情況下,網站的大部分加載時間來自于外部的Http請求。外部資源的加載速度隨著主機提供商的服務器架構、地點等不同而不同。減少外部請求要做的第一步就是簡略地檢查網站。研究你網站的每個組成部分,消除任何影響訪問者體驗不好的成分。這些成分可能是:
不必要的圖片
沒用的JavaScript代碼
過多的css
多余的插件
在你去掉這些多余的成分之后,再對剩下的內容進行整理,如,壓縮工具、CDN服務和預獲取(prefetching)等,這些都是管理HTTP請求的最佳選擇。除此之外,減少DNS路由查找教程會教你如何一步一步的減少外部HTTP請求。
4.壓縮CSS, JS和HTML
壓縮技術可以從文件中去掉多余的字符。你在編輯器中寫代碼的時候,會使用縮進和注釋,這些方法無疑會讓你的代碼簡潔而且易讀,但它們也會在文檔中添加多余的字節。
例如,這是一段壓縮之前的代碼。
.entry-contentp{
font-size:14px!important;
}
.entry-contentulli{
font-size:14px!important;
}
.product_itempa{
color:#000;
padding:10px0px0px0;
margin-bottom:5px;
border-bottom:none;
}
把這段代碼壓縮后就成了這樣。
.entry-contentp,.entry-contentulli{font-size:14px!important}.product_itempa{color:#000;padding:10px00;margin-bottom:5px;border-bottom:none}
使用壓縮工具可以非常簡單地把無用的字節從你的CSS、JS和HTML文件修剪掉。關于壓縮的相關信息,可以參閱如何壓縮CSS、JS和HTML。
5.使用預先獲取
預先獲取可以在真正需要之前通過取得必需的資源和相關數據來改善訪問用戶的瀏覽體驗,主要有3類預先獲取:
鏈接預先獲取
DNS預先獲取
預先渲染
在你離開當前web頁面之前,使用預先獲取方式,對應每個鏈接的URL地址,CSS,圖片和腳本都會被預先獲取。這保證了訪問者能在最短時間內使用鏈接在畫面間切換。
幸運的是,預先獲取很容易實現。根據你想要使用的預先獲取形式,你只需在網站HTML中的鏈接屬性上增加rel=”prefetch”,rel=”dns-prefetch”,或者rel=”prerender”標記。
如果你想學習前端可以來這個群,首先是二九一,中間是八五一,最后是一八九,里面可以學習和交流,也有大量的學習資料可以下載。
6.使用CDN和緩存提高速度
內容分發網絡能顯著提高網站的速度和性能。使用CDN時,您可以將網站的靜態內容鏈接到全球各地的服務器擴展網絡。如果您的網站觀眾遍布全球,這項功能十分有用。CDN允許您的網站訪問者從最近的服務器加載數據。如果您使用CDN,您網站內的文件將自動壓縮,以便在全球范圍內快速分發。
CDN是一種緩存方法,可極大改善資源的分發時間,同時,它還能實現一些其他的緩存技術,如,利用瀏覽器緩存。
合理地設置瀏覽器緩存,能讓瀏覽器自動存儲某些文件,以便加快傳輸速度。此方法的配置可以直接在源服務器的配置文件中完成。
了解更多有關緩存和不同類型的緩存方法,請參閱緩存定義。
7.壓縮文件
雖然許多CDN服務可以壓縮文件,但如果不使用CDN,您也可以考慮在源服務器上使用文件壓縮方法來改進前端優化。 文件壓縮能使網站的內容輕量化,更易于管理。 最常用的文件壓縮方法之一是Gzip。 這是縮小文檔、音頻文件、PNG圖像和等其他大文件的絕佳方法。
Brotli是一個比較新的文件壓縮算法,目前正變得越來越受歡迎。 此開放源代碼算法由來自Google和其他組織的軟件工程師定期更新,現已被證明比其他現有壓縮方法更好用。 這種算法的支持目前還比較少,但作為后起之秀指日可待。
了解更多信息,請閱讀我們有關Brotli壓縮的完整文章。
對于那些不懂得前端優化的人來說,圖片可能會是一個“網站殺手”。大量的寫真集和龐大的高清圖片會阻塞網頁渲染速度。沒有優化的高清圖片可能會有幾兆字節(mb)。因此適當地對它們進行優化可以改善網頁的前端性能。
每個圖像文件都包含了一些與純照片或圖片無關的信息。比如JPEG圖片,它包含了日期、地點、相機型號和一些其他不相關的信息。你可以用一些如Optimus的優化工具來刪除這些多余的圖像數據來精簡圖像的冗長的加載過程。因為Optimus是一個無損的圖片壓縮工具,它不會影響圖像畫質,只是壓縮圖片體積。
另外,如果你想進一步的優化一張圖
片,你可以使用有損壓縮,它會刪除一些圖片里面的數據,因此質量會受損。
進一步的學習有損和無損壓縮之間的區別,請閱讀我們完整的教程。
9.使用輕量級框架
除非你只用現有的編碼知識構建網站,不然,你可以嘗試使用一個好的前端框架 來避免許多不必要的前端優化錯誤。雖然有一些更大,更知名的框架能提供更多功能和選項,但它們不一定適合你的Web項目。
所以說,不僅確定項目所需功能很重要,選擇合適的框架也很重要——它要在提供所需功能的同時保持輕量。最近許多框架都使用簡潔的HTML,CSS和JavaScript代碼。
以下是幾項可以加快讀取的輕量級框架:
Pure
Skeleton
Milligram
框架并不能代替網頁設計,編程和維護。舉個簡單的例子,我們假設框架是一個新房子。房子干凈整潔,但它是空的。在你添加家具,家電和裝飾品時,你有責任確保房子不會變得凌亂。同樣地,當您使用了一個框架,您就有責任確保它不會被冗余的代碼,大圖片和過多的HTTP請求破壞。
前端優化–總結
進行前端優化似乎需要花費很大的精力,相信這篇應用指南中的一些小技巧能幫你極大改善網站加載速度。網站加載地越快,則用戶體驗越佳。因此,對前端進行優化能使給你和你的用戶都帶來益處。如果你有任何其他好的優化方法,請在評論區留下您的寶貴建議。
e