怎樣才能才企業網站的“網頁減肥”,使之能有效的加快網頁加載速度。
1、用gzip格式壓縮
gzip是gnuzip的縮寫,它是一個gnu自由軟件的文件壓縮程序。它是jean-loupgailly和markadler一起開發的,第一次公開發布版本是1992年10月31日發布的版本0.1,1993年2月發布了版本1.0。
我們在linux中經常會用到后綴為.gz的文件,它們就是gzip格式的,現今已經成為internet上使用非常普遍的一種數據壓縮格式,或者說一種文件格式。
http協議上的gzip編碼是一種用來改進web應用程序性能的技術,大流量的web站點常常使用gzip壓縮技術來讓用戶感受更快的速度。
這一般是指www服務器中安裝的一個功能,當有人來訪問這個服務器中的網站時,服務器中的這個功能就將網頁內容壓縮后傳輸到來訪的電腦瀏覽器中顯示出來。
一般對純文本內容可壓縮到原大小的40%,這樣傳輸就快了,效果就是你點擊網址后會很快的顯示出來,當然這也會增加服務器的負載,一般服務器中都安裝有這個功能模塊的。
根據w3c組織調查,大部分的網站都沒有啟用壓縮功能。
2、支持瀏覽器緩存
如果瀏覽器支持緩存,我們就不用重復下載網頁資源,最簡單的設置緩存方法是在響應頭中添加相應的內容,包括:expires header,last-modified等。
你可以可以通過配置服務器來自動添加這些屬性,比如你在apache服務器中配置緩存所有的照片一個月:
3、使用內容分發網絡 (cdn)
cdn的全稱是content delivery network,即內容分發網絡。其目的是通過在現有的internet中增加一層新的網絡架構,將網站的內容發布到最接近用戶的網絡“邊緣”,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。
cdn有別于鏡像,因為它比鏡像更智能,或者可以做這樣一個比喻:cdn=更智能的鏡像+緩存+流量導流。
因而,cdn可以明顯提高internet網絡中信息流動的效率,從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不均等問題,提高用戶訪問網站的響應速度。
為更好地理解cdn,讓我們看一下cdn的工作流程,當用戶訪問已經加入cdn服務的網站時,首先通過dns重定向技術確定最接近用戶的好cdn節點,同時將用戶的請求指向該節點。
當用戶的請求到達指定節點時,cdn的服務器(節點上的高速緩存)負責將用戶請求的內容提供給用戶。
具體流程為: 用戶在自己的瀏覽器中輸入要訪問的網站的域名,瀏覽器向本地dns請求對該域名的解析,本地dns將請求發到網站的主dns,主dns根據一系列的策略確定當時最適當的cdn節點,并將解析的結果(ip地址)發給用戶,用戶向給定的cdn節點請求相——應網站的內容。
以上三個方法可以有效地加快頁面的訪問速度,現在我們將對你的代碼進行診斷,幫助我們給頁面減肥。
4、刪除不需要的資源
當你不再需要一個組件的時候,你應該刪掉它的css和javascript代碼,如果這些代碼都單獨放在一個文件中,那刪掉它們也不是難事,但如果已經沒有用的代碼和其它代碼在一個文件中,那你肯定要費不少精力去刪掉它們。
這個時候你就需要使用第三方的工具來幫你一鍵解決,比如jslint,dust-me selectors,css usage或是像grunt-uncss一樣的構建工具。
5、style和font重復定義的沉余代碼
要充分利用好css代碼定義自己的顏色大小等,有些網站既用了css代碼定義了之后又去使用style或者是font這樣的代碼進行定義,這樣就無形中增加了無用代碼,容易造成代碼冗余,因此我們要對這樣的代碼進行壓縮,實現代碼精簡。
6、通用和最小化css
理想情況下,需要一個單獨的css文件,讓每個頁面都調用這一個布局,當然,如果你想要支持老版本的ie,你就得多弄一個css文件。
另外,我還要提醒大家一點:當你把它們構建到服務器上之前,你應該把代碼間所有不必要的格式都刪掉。
有很多預處理工具都可以幫你解決這件麻煩事,比如sass,less和stylus。
有一些方法可以幫助你直接合并多個css文件,在windows上:
copy file1.css+file2.css file.css
在mac或linux上:
cat file1.css file2.css > file.css
你可以把得到的css文件再經過在線的css壓縮工具刪除格式化。
最后,在head標簽中加載所有的css,這樣瀏覽器就知道你的頁面樣式不用多次重繪了。
7、通用和最小化的javascript
利用外部文件,我們可以用javascript代碼和css代碼放在外部文件里面,在我們的html代碼里面加上調用代碼進行調用即可,如果打開一個網站去檢查它的源文件,前面如果有大量的javascript代碼和css代碼就容易使得網站有用的內容文字部分推到后面去了,是不利于搜索引擎抓取的。
據我博客收集的數據顯示:平均每個頁面加載了18個javascript文件,雖然把像jquery這樣的庫文件單獨分開非常實用,但是你自己的javascript代碼應該保持通用和最小化。
同樣很多第三方的工具可以幫你解決這樣事情,比如yui compressor,closure compiler和我最喜歡用的the javascript compressorrater,簡化的javascript代碼會加快網頁的訪問速度,減少http請求次數。
最后,好在html的body標簽后放置javascript引用代碼,這樣能保證javascript代碼不影響到其它內容的加載。
8、減少頁面嵌套的表格
對于表格要盡量少使用,尤其是嵌套的表格部分,雖然css排版使得我們編寫代碼更加的精簡容易,但往往也是少不了表格的使用的,我們可以不去避免,但一定要減少使用多層嵌套的表格,不要產生沒有用的代碼。
9、網站圖片的優化
對于一些圖片站來說,加載錯誤的圖片格式會對你的網頁造成很大影響,所以,我建議圖片站的站長一定要多對圖片做些優化。
(1)、圖片優化原則
一般來說選取圖片我們應用遵循如下原則:
①、照片使用jpg格式。
②、其它所有的圖片都使用png格式。
(2)、調整大圖的大小
目前智能機所拍出的照片越來越大,你不可能把原照片直接展示在頁面中,普通的編輯器都會直接上傳原圖,這樣會讓頁面的加載速度慢到另一個級別,在正常的照片處理中,一般都沒有必要給用戶高質量的圖片展示,所以,你需要一個自動調整圖片大小的工具。
需要注意的是,圖片的尺寸是不能超過容量的大小的,這樣一來頁面加載了全圖,卻無法展示出來,現在照片的尺寸基本上都超過電腦顯示屏的尺寸了。
圖片的大小在網頁總大小中占很大的比重,圖片減小50%會導致整體頁面大小減少75%,所以你應該認真解決一下圖片的加載。
(3)、進一步壓縮圖片
僅僅調優圖片的大小是不夠的,你應該通過第三方工具對圖片進行分析,進一步壓縮圖片。
比較好用的工具有optipng,pngout,jpegtran和jpegoptim,這些工具大都能安裝成獨立的工具或是整合到開發過程中,另外像smush這樣的工具,還可以直接在云端處理。
10、刪除不必要的字體和注釋
web fonts已經徹底改變了字體的設計,它減少了很多不必要的文本,然而,目前的字體仍然會給你的網頁帶來多余的字節。
如果你使用超過兩種字體,這就已經開始對性能造成影響了。
網頁代碼盡量少用注釋,我們知道一段程序里面加上注釋能夠便于我們快速找到和理解具體代碼對應的功能,對于編程人員修改網頁是有幫助的,但是這樣的代碼對于搜索引擎來說是沒有任何的意義的,只能說是噪聲,因此我們要減少網頁代碼里面出現的注釋部分。
我相信大部分網站都可以通過以上的優化減小大概30%-50%的重量,但是身為一個好主義的開發者這是遠遠不夠的,我們在接下來的系列文章中會繼續對網站瘦身進行深入研究。
企業如何制作一個優秀的網站信息流廣告資源線索接通率低的真正原因北京到郴州物流專線佛山到那曲物流專線南昌到延安物流專線企業網站建設上線后收錄的方法和技巧杭州到贛州物流專線拓展思維:引流結構詳解