網(wǎng)站頁(yè)面優(yōu)化指南
網(wǎng)站頁(yè)面優(yōu)化指南1、減少HTTP 請(qǐng)求數(shù)量這主要是修改網(wǎng)站代碼,減少外部圖片、CSS 、JS 等文件數(shù)量,手動(dòng)合并多個(gè)CSS/JavaScript文件。IIS 那里不用設(shè)置。2、使用CDN對(duì)于小網(wǎng)站來(lái)
網(wǎng)站頁(yè)面優(yōu)化指南
1、減少HTTP 請(qǐng)求數(shù)量
這主要是修改網(wǎng)站代碼,減少外部圖片、CSS 、JS 等文件數(shù)量,手動(dòng)合并多個(gè)CSS/JavaScript文件。IIS 那里不用設(shè)置。
2、使用CDN
對(duì)于小網(wǎng)站來(lái)說(shuō),這個(gè)就免了吧。當(dāng)然有錢(qián)人可以試試,可以從技術(shù)上解決用戶(hù)訪(fǎng)問(wèn)網(wǎng)站響應(yīng)速度慢的問(wèn)題。
3、啟用內(nèi)容過(guò)期
對(duì)于靜態(tài)文件啟用內(nèi)容過(guò)期可以提高訪(fǎng)問(wèn)性能。首先網(wǎng)站的目錄要?jiǎng)澐趾侠?,圖片、CSS 、JavaScript 均放在單獨(dú)目錄下,然后在IIS 中選擇目錄,點(diǎn)屬性-HTTP 頭,啟用內(nèi)容過(guò)期,可以選擇30天后過(guò)去,這樣,用戶(hù)瀏覽器將比較當(dāng)前日期和截止日期,以便決定是顯示緩存頁(yè)還是從服務(wù)器請(qǐng)求更新的頁(yè),由于圖片、CSS 、JS 通常變化較少,因此基本上都從本地緩存讀取,從而加快顯示速度。

4、啟用Gzip 壓縮
HTTP 壓縮是在Web 服務(wù)器和瀏覽器間傳輸壓縮文本內(nèi)容的方法。HTTP 壓縮采用通用的壓縮算法如Gzip 等壓縮HTML 、JavaScript 或 CSS文件。壓縮的最大好處就是降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,從而提高客戶(hù)端瀏覽器的訪(fǎng)問(wèn)速度。 使用方法是,右擊“網(wǎng)站”->“屬性”,選擇“服務(wù)”。在“HTTP壓縮”框中選中“壓縮靜態(tài)文件”,“臨時(shí)目錄”建議單獨(dú)設(shè)置另一個(gè)盤(pán)的目錄下。
之后,IIS 管理器中,右擊“Web服務(wù)擴(kuò)展”->“增加一個(gè)新的Web 服務(wù)擴(kuò)展”,在“擴(kuò)展名”中輸入“HTTPCompression”,添加“要求的文件”為C:WINDOWSsystem32inetsrvgzip.dll,其中Windows 系統(tǒng)目錄根據(jù)您的安裝可能有所不同,選中“設(shè)置擴(kuò)展?fàn)顟B(tài)為允許”。

最后,使用文本編輯器打開(kāi)C:WindowsSystem32inetsrvMetaBase.xml,在HcFileExtensions 中增加需要壓縮的靜態(tài)文件后綴名,默認(rèn)為HTML 和TXT 文件,建議再添加上js 、css 等,不要添加圖片或ZIP 等已經(jīng)被壓縮的文件。
5、將樣式文件放在頭部
這是基本的HTML 代碼風(fēng)格,將所有的CSS 文件都放在HTML 頁(yè)面的頭部。
6、將腳本文件放在尾部
這也是基本的HTML 代碼風(fēng)格,將所有的JavaScript 文件都放在HTML 頁(yè)面的尾部。
7、避免CSS 表達(dá)式
這點(diǎn)很簡(jiǎn)單,因?yàn)榇蠖鄶?shù)人從來(lái)不用CSS 表達(dá)式。
8、使用外部的JavaScript 和CSS
將所有的JavaScript 和CSS 都做成外部文件的形式進(jìn)行引用,這主要是為了讓這些文件可以被瀏覽器緩存起來(lái),參見(jiàn)第三點(diǎn)的介紹。
9、減少DNS 查詢(xún)
域名的DNS 查詢(xún)會(huì)帶來(lái)額外的訪(fǎng)問(wèn)開(kāi)銷(xiāo),減少頁(yè)面內(nèi)文件的主機(jī)域名數(shù)量,一個(gè)頁(yè)面的主機(jī)域名保持在2-4個(gè)以?xún)?nèi),這樣就不會(huì)降低頁(yè)面的裝入速度。

10、壓縮JavaScript 文件
壓縮腳本文件,刪除不必要的字符,可以改善加載時(shí)間,目前有很多JavaScript 文件的壓縮工具,我這里有一個(gè)GUI 界面的JS 壓縮工具供下載。
11、避免重定向
網(wǎng)頁(yè)的重定向會(huì)帶來(lái)額外的運(yùn)行開(kāi)銷(xiāo),因此要避免頁(yè)面進(jìn)行重定向跳轉(zhuǎn)操作。
12、刪除重復(fù)腳本
一個(gè)頁(yè)面兩次包含同一個(gè)JavaScript 文件會(huì)影響加載的性能,因此需要將重復(fù)的腳本文件刪除。
13、配置ETag
這是一個(gè)令人迷惑的問(wèn)題。理論上說(shuō)將服務(wù)器的ETag 刪除會(huì)提高HTTP 請(qǐng)求的性能,但是按照微軟官方提供的修改方法配置IIS 6.0,并沒(méi)有實(shí)際效果,最終我使用了一個(gè)第三方的DLL 文件,以ISAPI 的方式實(shí)現(xiàn)了刪除ETag 的功能。 經(jīng)過(guò)上面這些網(wǎng)站前端重構(gòu)和WEB 服務(wù)器的配置修改,我們的頁(yè)面結(jié)構(gòu)就變得更加規(guī)范,重構(gòu)的頁(yè)面大多都會(huì)取得不錯(cuò)的YSlow 的評(píng)分,總體來(lái)說(shuō)性能提升了不少。對(duì)于最終用戶(hù)來(lái)說(shuō),也會(huì)明顯感受到訪(fǎng)問(wèn)網(wǎng)站速度變快了很多,網(wǎng)站的瀏覽體驗(yàn)得到了較好的提升。