如何提高網站負載性能

2022-05-08    分類: 網站建設

原則1 減少HTTP請求數


構造請求、等待響應需要時間,因此請求數量越少越好。減少請求的總體思路就是合并資源,減少顯示一個頁面需要的文件數。


1. Image Map


通過設置<img>標簽的usemap屬性與使用<map>標簽可以在一幅圖片上切分出多個區域,指向不同的鏈接。比起使用多幅圖片分別構造鏈接減少了請求數。


2. CSS Sprite(CSS貼圖整合/貼圖拼合/貼圖定位)


通過設置元素的background-position樣式做到。一般用于界面圖標。典型的可以參考TinyMCE編輯器上方的那些小按鈕。多個小圖實質是從一個統一的大圖通過不同的偏移量裁剪而來,這樣加載界面上的眾多按鈕實際上只要請求一次(請求大圖一次),從而減少HTTP請求數。


3. Inline Image(內聯圖片)


在<img>的src中不指定外部圖片文件的URL,而是直接將圖片信息放入。例如src="data:image/gif;base64,R0lGODlhDAAMAL..."某些特殊情況下有用(例如一個不大的圖片僅在當前頁面用到)。


原則2 利用多線路CDN


為你的站點提供多種線路(例如國內電信、聯通、移動)、多個地理位置(北方、南方、西部)的訪問,使得所有用戶都能夠快速訪問。


原則3 利用HTTP Cache


給不頻繁更新的資源(例如靜態圖)加較長的Expires頭信息,這些資源一經緩存,未來很長時間都可以不再重復傳輸了。


原則4 使用Gzip壓縮


使用Gzip壓縮HTTP報文,減小體積,減少傳輸時間。


原則5 將樣式表置于頁面前部


先加載樣式表,這樣頁面渲染得以較早開始,給用戶頁面加載較快的感覺。


原則6 將腳本置于頁面尾部


原因同5,先處理頁面顯示,頁面渲染較早完成,而腳本邏輯稍后執行,這樣給用戶頁面加載較快的感覺。


原則7 避免使用CSS表達式


過于復雜的JavaScript腳本邏輯、DOM查找、選擇操作將會降低頁面處理效率。


原則8 將JavaScript與CSS作為外聯資源


這似乎與原則1中的合并思想相悖,但其實不然:考慮每個頁面都引入了一個公共的JavaScript資源(例如jQuery或是ExtJS這樣的JavaScript庫),單就一個頁面的表現來看,內聯(即將JavaScript嵌入HTML)頁面將比外聯(使用<script>標簽引入)頁面加載更快(因為其較少的HTTP請求數)。但如果有很多頁面都引入了這個公共JavaScript資源,那么內聯方案會造成重復傳輸(因為這個資源內嵌在每個頁面中了,所以每次打開一個頁面都要將這部分資源傳輸一遍,從而造成網絡傳輸資源的浪費)。而將這種資源獨立出來外聯引用可以解決這個問題。


由于JavaScript和CSS相對穩定,我們可以對其對應的資源設置較長的失效期(參考原則3)。


原則9 減少DNS查找


作者給出的建議是:


1. 使用Keep-Alive保持連接


如果連接斷開,那么下次連接又要執行DNS查找,即使對應的域名-IP映射已被緩存,查找也是要消耗一些時間的


2. 減少域名


每次請求新域名都需要進行通過DNS查找不同的域名,且DNS緩存無法發揮作用。因此應該盡量將站點組織在一個統一域名下,避免使用過多子域名


原則10 壓縮你的JavaScript


使用JS壓縮工具壓縮你的JavaScript吧,很有效哦。看看jQuery的兩個不同的發行版本就知道區別了:


http://code.jquery.com/jquery-1.6.2.js 閱讀版jQuery代碼,230KB


http://code.jquery.com/jquery-1.6.2.min.js 壓縮版jQuery代碼(用于實際部署),89.4KB


原則11 盡量避免重定向


一次重定向意味著在你真正訪問到想要看到的頁面前加入了一輪額外的HTTP請求(客戶端發起HTTP請求→HTTP服務器返回重定向響應→客戶端對新URL發起請求→HTTP服務器返回內容,下劃線部分為額外的請求),因此消耗更多的時間(也就給人反應更慢的感覺)。因此除非必要,不要隨意使用重定向。幾個“必要”的情況:


1. 避免URL失效


舊站點遷移后,為了避免舊的URL失效,通常將對舊URL的請求重定向至新系統的對應地址。


2. URL美化


在可讀性好的URL與實際資源URL之間轉換,例如對于Google Toolbar,用戶記得住http://toolbar.google.com這個對人類富有語義的地址,卻很難記住http://www.google.com/tools/firefox/toolbar/FT3/intl/en/index.html這個真正的資源地址。因此有必要保留前者,并且將對前者的請求重定向至后者。


原則12 移除重復的腳本


不要在一個頁面中重復引入相同的腳本。例如腳本B和C都依賴于A,那么在使用了B和C的頁面中就有可能存在對A的重復引用。解決方法,對于簡單的站點手動檢查依賴性,消去重復引入;對于復雜的站點則需要構建自己的依賴管理/版本控制機制。


原則13 小心處理ETag


ETag是除Last-Modified之外的另一種HTTP Cache手段。通過hash的辦法辨識資源是否被修改。但ETag存在一些問題,例如:


1. 不一致:不同Web服務器(Apache, IIS等)定義的ETag格式不同


2. ETag的計算是不穩定的(由于考慮過多因素),例如:


1) 相同資源在不同服務器上計算出來的ETag不一樣,而大型Web應用通常由不止一臺服務器提供服務,這就導致客戶端在服務器A緩存好的資源明明仍然有效,而在下次請求B時由于ETag不同而被認定為失效,導致相同資源的重復傳輸。


2) 資源不變,而由于一些其他因素的變化,例如配置文件更改,導致ETag變化。直接后果是系統更新后客戶端大規模發生Cache失效,導致傳輸量大增,站點性能下降。


作者給出的建議是:要么根據你的應用特點改進已有的ETag計算方法,要么干脆就不用ETag,而改用最簡單的Last-Modified。


原則14 在Ajax中利用HTTP Cache


Ajax是異步請求,異步請求不會阻塞你現在的操作,而且當請求完成時,你馬上就可以看到結果。但異步不代表能夠瞬時完成,也不代表能夠容忍它花無限多的時間完成。因此對于Ajax請求的性能也需要重視。有很多Ajax請求訪問的是一些相對穩定的資源,因此別忘了對Ajax請求利用好HTTP Cache機制,具體參見原則3、13。

本文題目:如何提高網站負載性能
文章URL:http://m.kartarina.com/news15/151265.html

成都網站建設公司_創新互聯,為您提供外貿建站網站設計外貿網站建設ChatGPT網頁設計公司移動網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 国产强伦姧在线观看无码| 久久久g0g0午夜无码精品 | 久久久久久久久无码精品亚洲日韩| 中文字幕无码中文字幕有码 | 2024你懂的网站无码内射| 免费人妻av无码专区| 免费A级毛片无码专区| 免费无码又爽又刺激一高潮| 无码精品A∨在线观看十八禁 | 亚洲AV成人噜噜无码网站| 国产高清无码毛片| 伊人久久大香线蕉无码| 久久久久久AV无码免费网站| 无码精品人妻一区二区三区AV| 免费无码一区二区三区| 国产AV无码专区亚洲精品| 日韩久久无码免费毛片软件| 伊人久久大香线蕉无码| 精品亚洲成A人无码成A在线观看| 亚洲人成人无码网www国产| 亚洲6080yy久久无码产自国产| 午夜人性色福利无码视频在线观看| 亚洲午夜福利精品无码| 亚洲国产精品无码久久青草 | 亚洲欧洲无码AV电影在线观看| 国产成人无码a区在线观看视频免费| 精品国产aⅴ无码一区二区| 中文字幕丰满伦子无码| 亚洲AV无码乱码在线观看性色扶| 国产精品无码专区AV在线播放 | 中文字幕AV中文字无码亚| 亚洲AV无码乱码在线观看牲色| 国产高清不卡无码视频| 国产精品爆乳奶水无码视频| 午夜寂寞视频无码专区| 免费无码黄网站在线观看| 天堂无码在线观看| 黑人无码精品又粗又大又长 | 高清无码午夜福利在线观看 | 人妻丰满熟妞av无码区| 无码国产精品一区二区免费模式|