下面是我所理解的和網上搜索到的總結:
1、減少頁面請求:
從WEB運行原理上講,IIS請求是無狀態的,在服務器端一直是連接和關閉的不斷進行着,如果能減少服務器請求,總的時間將會減少。
之前我下載163郵箱的登陸頁面的圖片時發現,它們的只用到了一個圖片來完成整個頁面的所有圖片,當時我就納悶了,這跟平時做的網站不一樣呀。然來這樣做減少瀏覽器的請求次數,用httpwatch你會發現請求的總時間大大減少了。同樣的想法,在做css樣式,javascript代碼的時候也要做到盡可能的放在一個文件下來減少WEB請求。
2、頁面壓縮技術,給我們JS,HTML代碼進行瘦身。
Jquery 作為JS最輕量級的類庫,它的原類庫是242KB,壓縮后的它竟只有91.6KB。 常見的壓縮工具有Google Closure Compiler、YUI Compressor、JsPacker、gzip。我常用的是gzip,因為它的壓縮率是最高的。用jdk壓縮后它會把一些空格去掉,把我們很長的變量名換成換成很短的字母來代替。
3、樣式、行為、結構分離。
當第一次訪問頁面的時候,用戶就可以把CSS,JS代碼下載下來,這樣做雖然第一次使網頁加載的速度變慢了,但后面的頁面將快很多。當用戶訪問這個網站的其它的頁面時,由於其它頁面也引用了這個CSS樣式和JS代碼。瀏覽器發現它已經下載好了,下一次就可以不用下載了。這樣就做到了一次下載,后續速度的效果。
4、使用存儲過程
在運行存儲過程前,數據庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。由於執行SQL語句的大部分工作已經完成,所以存儲過程能以極快的速度執行。這種預編譯的sql語句就可以直接執行而節省了很大一部分查詢的時間。
5、一些細節:
把CSS樣式放在頭部,如果JS很多的話,把js代碼放在尾部。這樣做可以盡可能的先加載頁面的DOM結構,然后才可以級用戶體驗。如果JS很多的大的話,頁面都沒加載完,何來用戶體驗之說呢。
6、適當的使用AJAX
現在的Ajax好像有點被神話了,好像網頁只要Ajax了,那么就不存在效率問題了。其實這是一種誤解。拙劣的使用Ajax不會讓你的網頁效率更高,反而會降低你的網頁效率。Ajax的確是個好東西,但是請不要過分的神話它。使用Ajax的時候也要考慮上面的那些准則。
7、盡量少使用VS為我們提供的服務器控件的頁面樣式,自己動手把樣式寫在樣式文件里。盡量寫得通用些。
8、頁面緩存
在大型的門戶網站都用到了緩存技術,它是以空間換時間的技術。
緩存主要是為了提高數據的讀取速度。因為服務器和應用客戶端之間存在着流量的瓶頸,所以讀取大容量數據時,使用緩存來直接為客戶端服務,可以減少客戶端與服務器端的數據交互,從而大大提高二次頁面的訪問速度的程序的效率。
還有很多加快頁面速度的方法,比如:
網站服務器管理員方向的:
9、配置網站的實體標簽:
這個Etag不是給用戶用的,而是給瀏覽器緩存用的。Etag是服務器告訴瀏覽器緩存,緩存中的內容是否已經發生變化的一種機制。通過Etag,瀏覽器就可以知道現在的緩存中的內容是不是最新的,需不需要重新從服務器上重新下載。
10、使用CDN技術。
我們上網下載東西的時候經常會看見什么“南方服務器”、“北方服務器”的就是用到了CDN技術來提高下載速度與穩定性。
CDN的全稱是Content Delivery Network,即內容分發網絡。其基本思路是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度(來自百度百科)。
服務器方面我也不是很了解,以上是我在學習的時候進行總結的一些問題,如有不完善的希望大家可以幫忙完善。