成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高性能WEB開發之如何減少請求數

開發 前端
每次請求都會帶上一些額外的信息進行傳輸(這次請求中還沒有帶cookie),當請求的資源很小,比如1個不到1k的圖標,可能request帶的數據比實際圖標的數據量還大。所以當請求越多的時候,在網絡上傳輸的數據自然就多,傳輸速度自然就慢了。所以要要減少請求數,那如何減少請求數呢?

我們先分析下請求頭,看看每次請求都帶了那些額外的數據.下面是監控的google的請求頭

Host www.google.com.hk

User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTBDFff GTB7.0

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language zh-cn,en-us;q=0.7,en;q=0.3

Accept-Encoding gzip,deflate

Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive 115

Proxy-Connection keep-alive

返回的response head

Date Sat, 17 Apr 2010 08:18:18 GMT

Expires -1

Cache-Control private, max-age=0

Content-Type text/html; charset=UTF-8

Set-Cookie PREF=ID=b94a24e8e90a0f50:NW=1:TM=1271492298:LM=1271492298:S=JH7CxsIx48Zoo8Nn; expires=Mon, 16-Apr-2012 08:18:18 GMT; path=/; domain=.google.com.hk NID=33=EJVyLQBv2CSgpXQTq8DLIT2JQ4aCAE9YKkU2x-h4hVw_ATrGx7njA69UUBMbzVHVnkAOe_jlGGzOoXhQACSFDP1i53C8hWjRTJd0vYtRNWhGYGv491mwbngkT6LCYbvg; expires=Sun, 17-Oct-2010 08:18:18 GMT; path=/; domain=.google.com.hk; HttpOnly

Content-Encoding gzip

Server gws

Content-Length 4344

這里發送的請求頭的大小大概420 bytes,返回的請求頭大概 600 bytes。

可見每次請求都會帶上一些額外的信息進行傳輸(這次請求中還沒有帶cookie),當請求的資源很小,比如1個不到1k的圖標,可能request帶的數據比實際圖標的數據量還大。

所以當請求越多的時候,在網絡上傳輸的數據自然就多,傳輸速度自然就慢了。

其實request自帶的數據量還是小問題,畢竟request能帶的數據量還是有限的。

http連接的開銷

相比request頭部多余的數據,http連接的開銷則更加嚴重。先看看從用戶輸入1個URL到下載內容到客戶端需要經過哪些階段:

1. 域名解析

2. 開啟TCP連接

3. 發送請求

4. 等待(主要包括網絡延遲和服務器處理時間)

5. 下載資源

可能很多人認為每次請求大部分時間都花在下載資源上,讓我們看看blogjava資源下載瀑布圖(每種顏色代表的階段與上面5個階段對應):

高性能WEB開發 - 為什么要減少請求數,如何減少請求數!

看了上圖你可能驚訝,花費在等待階段的時間比實際下載的時間要多的多,上圖告訴我們:

1. 每次請求花費的大部分時間在其他階段,而不是在下載資源階段

2. 再小的資源照樣會花費很多時間在其他階段,只是下載階段會比較短(見上圖的第6個資源,才284Byte)。

正對上面提到的2種情況,我們應該要怎么進行優化了?減少請求數來減少其他階段的花銷和網絡中傳輸的數據。

如何減少請求數

1、合并文件

合并文件就是把很多JS文件合并成1個文件,很多CSS文件合并成1個文件,這種方法應該很多人用到過,這里不做詳細介紹,

只推薦1個合并的工具:yuiCompressor 這個工具yahoo提供的。 http://developer.yahoo.com/yui/compressor/

2、合并圖片

這是利用css sprite,通過控制背景圖片的位置來顯示不同的圖片。這種技術也是大家都用過的,不做詳細介紹,推薦1個在線合并圖片的網站:http://csssprites.com/

3、把JS、CSS合并到1個文件

上面第1種方法說的只是把幾個JS文件合并成1個JS文件,幾個CSS文件合并成1個CSS文件,哪如何把CSS和JS都合并到1個文件中,見我的另1篇文章:

http://www.blogjava.net/BearRui/archive/2010/04/18/combin_css_js.html

4、使用Image maps

Image maps 是把多個圖片合并成1個圖片,然后使用html中的標簽連接圖片,并實現點擊圖片不同的區域執行不同的動作,image map在導航條中比較容易使用到。

image map的使用方法見: http://www.w3.org/TR/html401/struct/objects.html#h-13.6

5、data嵌入圖片

這種方法把圖片進行編碼直接嵌入到html中進行使用,以減少HTTP請求,但這個會增加HTML頁面的大小,而且這樣嵌入的圖片不能緩存。見下面這個圖片:

上面的圖片就是把圖片進行base64編碼后使用data:嵌入到html中,代碼如下(后面的省略了,大家可以查看源代碼看):

  1. <IMG SRC="data:image/gif;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAWRXhpZgAASUkqAAgAA......"> 

其中google的視頻搜索中,搜索出來的視頻縮略圖就都是使用嵌入的圖片的,見下圖:

高性能WEB開發 - 為什么要減少請求數,如何減少請求數!

以上幾種方法在都有利有弊,在不同情況下可以選擇不同的使用方式,比如使用data嵌入圖片雖然減少了請求數,但會增加頁面大小。

所以微軟的bing搜索在用戶***次訪問的時候使用data嵌入圖片,然后后臺懶加載真真的圖片,以后訪問就直接使用緩存的圖片,而不使用data。
 

系列文章:

  1. 高性能WEB開發之如何加載JavaScript
  2. 高性能WEB開發之圖片篇
  3. 高性能WEB開發之Web性能測試工具推薦
  4. 高性能WEB開發之HTTP服務器
責任編輯:陳貽新 來源: BearRui的博客
相關推薦

2011-04-21 10:47:29

Webjavascript

2011-04-19 11:06:03

JavaScriptweb

2011-04-18 10:16:30

WEB高性能

2013-06-19 09:20:53

Web開發Web性能優化高性能

2011-04-07 13:53:25

Web工具

2011-10-18 13:58:32

高性能web

2011-04-07 13:39:24

WebHTTP

2011-04-27 10:57:29

高性能web開發

2013-09-10 16:16:19

移動網站性能優化移動web

2011-06-14 09:27:43

高性能WEB開發

2011-04-22 09:54:37

CSSjavascript

2011-04-28 09:40:26

flush高性能Web開發

2011-04-25 10:11:57

高性能web開發

2013-09-10 17:13:57

移動網站性能優化移動web

2016-08-23 14:37:21

2009-07-30 10:28:56

Web高性能開發

2013-08-16 14:43:14

高性能移動Web移動Web站點移動Web

2016-11-28 09:19:27

2021-04-12 05:55:29

緩存數據Axios

2011-02-13 09:37:55

ASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区国产精品 | 欧美日韩久久久 | 天天久久 | 国产高潮好爽受不了了夜色 | 91精品国产综合久久婷婷香蕉 | 亚洲视频在线观看 | 黄片毛片免费看 | 亚洲国产成人在线视频 | 久久精品久久久 | 精品久久久一区 | 黄色免费在线观看网站 | 欧美日韩不卡 | 日韩a在线 | 色婷婷av一区二区三区软件 | 干干干操操操 | 日韩一级 | 极品粉嫩国产48尤物在线播放 | 亚洲精品电影网在线观看 | 国产精品无码久久久久 | 可以免费观看的av片 | 中文字幕不卡 | 亚洲精品日日夜夜 | 亚洲啪啪 | 韩日精品一区 | 亚洲一区二区三区视频 | av在线播放网站 | 成人福利视频网站 | 午夜寂寞福利视频 | 国产网站久久 | 久久国产精品一区 | 欧美日韩国产综合在线 | 亚洲国产精品福利 | 99精品视频在线观看 | av激情在线| 欧美激情亚洲激情 | 亚洲精品国产成人 | 在线一区 | 亚洲国产精品视频一区 | 久久av.com| 国产精品污www一区二区三区 | 在线视频中文字幕 |