對于服務器租用者來說,要想在硬件環境、網絡環境等來改善自身網站性能,受客觀因素的影響可能會有比較大的難度。因此,只能退而求其次,在程序上狠下功夫。對于獨立博客站長來說,使用的博客程序一般都是比較成熟的發行版的程序,這些程序為了適用的廣泛性往往在代碼中留出了很大的改進余地,因此,我們可以在這上面下一些功夫。
在前面的文章中,我又系列的文章來講述如何提高網站性能的最佳體驗,同時還提供了一款yahoo!推出的工具yslow來提高網站性能,在參考這些原則的基礎上,我針對pjblog博客程序(其它獨立博客程序和網站也可作為參考)為例說一下改進方法:
合并javascript文件。無論是在pjblog還是其它的博客程序中,都使用了大量的外部javascript文件,要知道,引入一個外部文件都要發送一個http請求,而在所有影響頁面響應速度的因素中,http請求是最關鍵的一個,因此把所有的javascrip文件合并到一個 javascript.js的文件中是一個很好的做法。不過,你要注意不同的javascript文件中使用了不同的變量和函數名稱,你要保證它們合并之后還能正常工作。在某些情況下,你也可以有兩個獨立的javascript文件;
精減你的javascript文件。合并javascript文件是為了減少http請求次數,但是基本上不會在體積上有所改觀,所以你還需要精簡掉javascript文件中那些沒有用的東西,比如注釋、換行、空白等,這大概會使你的程序縮小20%~30%的空間。你可以使用esc 1.14對文件進行壓縮,它的壓縮率高達60%以上,對于減少響應大小、提高響應速度來說大有裨益;
合并css文件與精減css文件。和處理javascript 文件一樣,把所有的css文件合并到一個style.css中,css比javascript好處理的一點就是它沖突的機率較小,即便有沖突也不會是大問題。精簡就去掉多余的樣式化的格式,把所有的css規則都放到一行中。這款叫作minify的程序不但可以壓縮css還可以壓縮javascript和php程序。不過這里要提醒的是,如果你要合并和精簡文件一定要保留原來的文件以便以后程序更改時使用。 查看更多網頁制作教程。
使用css sprites。所謂的css sprites就是所有css中用來做背景圖像的圖片文件都放到一個文件中。在pjblog以及其它博客程序的皮膚中,作者很多都沒有使用css sprites,這樣造成每出現一次background規則都要發送一次http請求,而如果使用css sprites則只需要一次http請求,節省不必要的開支。
使用緩存。對于靜態內容(如flash、javascript、css、image)通過加上expires頭或者cache-control來把它們緩存到客戶端,這樣用戶在下次訪問的時候就可以不用下載這樣內容了,這樣減少了http請求的次數又減少了下載文件的大小。在iis中設置文件頭很簡單,在你要設置的文件或者文件夾上右鍵點擊——屬性——http頭,然后勾中“啟用文件過期”,設定過期時間,可以是一年或者十年等,還可以指定某個未來的時間,如2010年等。不過你一但設置了http頭,如果你要對文件作出修改你需為修改過的文件重新起一個名字。
啟用gzip壓縮。gzip壓縮針對javascript、css等內容一種壓縮技術,它能大大減少文件的體積提高傳輸速率,精簡javascript和css只是去除不必要的內容,而gzip壓縮則是將文件在服務器端打包、在客戶端解包的過程。apache和iis6.0都內置了gzip技術,現代瀏覽器都支持gzip技術(即使不支持它也會告訴服務器不要打包),因此可以放心使用。在iis6.0中你需要簡單配置之后才能使用gzip技術,而在apache 1.3中要啟用mod_zip,在apache 2.x使用moflate。gzip大概可以節省70%的傳輸空間,目前互聯網中有90%瀏覽器資料支持gzip傳輸。
把javascript文件放在文檔的最末尾,而把css文件放在<head>之間。css放在<head/>之間會加快文檔下載。在yahoo!的研究中發現,如果你把一個css文件置于文檔內部,當瀏覽器加載到這個樣式表時會終止所有文件的下載而單獨下載它(一般的下載瀏覽器使用并行下載模式),這是因為瀏覽器在下載到一個css文件后都要根據css內的規則重繪屏幕,這還會導致用戶出現白屏。所以要把你所有的樣式文件都放在最開始。而把javascript文件放于末尾下載,一方面可以使用戶首先獲得文檔內容,另一方面javascript文件的下載和其它文件不同,它不能和其它文件同時下載,所有的javascript文件只有單獨一個一個下載。所以在不影響使用的情況下,javascript文件要放在末尾加載。 查看更多網頁制作教程。
css和javascript文檔要成為獨立的外部文件。這是因為瀏覽器加載使用的是并行模式,一次可以加載多個內容,把css和javascript作為單獨文件不但可以減小html文檔的大小,而可以加快下載效率。
使用少量的域名。一般來說一個頁面引用的文件(圖片、flash、css、javascript)不能多于四個主機,因為每多出一個域名就意味著多一個dns的查找,在瀏覽器查找dns信息的過程中,瀏覽器由于不知道要訪問的ip地址是什么,所以它什么都不做,只是在等待,所以dns查找的次數越少,響應速度就越快。
避免css中使用expression。雖然功能很強大,但是它的計算頻率太高,影響網站的整體性能。對于一個css expression來說,即使你滾動一下屏幕它都要重新計算一次,甚至你移到一次鼠標它都要重新計算,所有一個css express在頁面中計算10000次是很容易的事情。
空間和網絡的因素我們很難左右,但是程序本身的性能還需要改進的地方??纯茨愕牟┛驮谔岣咝阅芊矫媸欠襁€有需要改進的地方呢?
新聞熱點
疑難解答