【概觀】
1、什么使我們的網(wǎng)站變慢?
2、Http 協(xié)議
3、通過更好的性能省錢和賺錢
4、性能規(guī)則
【什么使網(wǎng)站變慢】
對(duì)于大多數(shù)現(xiàn)代的網(wǎng)站,僅僅有10%-20%的響應(yīng)時(shí)間是用于生成和加載html document的。
那么,其他的時(shí)間用于加載什么呢?確切的說,如下:
1、css
2、javascript(jquery,plugin 等等)
3、images
讓我們使用一個(gè)工具去看看-Fiddler (http://www.fiddler2.com/fiddler2/)
首先打開fiddler,然后使用瀏覽器訪問 www.microsoft.com
這時(shí)候我們可以看到fiddler監(jiān)控到客戶端與微軟網(wǎng)站服務(wù)器之間的交互情況如下圖:
注意fiddler 右邊的選項(xiàng)卡,有一個(gè)timeline。載入default.asp話費(fèi)了大概1s的時(shí)間。讓我們?nèi)x這些行。再去看看timeline,如下圖
這時(shí)候我們根據(jù)數(shù)據(jù)就可以證明前邊的觀點(diǎn),對(duì)于某個(gè)網(wǎng)站來說,80%的時(shí)間是用于加載css/JS/image的。
【Http 協(xié)議】
對(duì)于http協(xié)議的理解是非常重要的,因?yàn)樗x了web 瀏覽器和 web 服務(wù)器如何交互。
1、Hypertext Transfer Protocol
對(duì)于這點(diǎn)來說,最重要的是text,它不是基于二進(jìn)制的協(xié)議,而是基于text的。
2、協(xié)議是1997年1月在 RFC(Http1.1)定義的。
3、請(qǐng)求/相應(yīng) 模式?蛻舳藶g覽器發(fā)送特定的request,服務(wù)器返回response
4、Header 和body。 每個(gè)request/response 有header和body
以下是 http協(xié)議的內(nèi)容。我十分推薦你們閱讀它:http://tinyurl.com/8395lq
HttpRequest
我們使用fiddler觀察一下我們?cè)L問微軟的httprequest。
選中第一個(gè)記錄。右邊選項(xiàng)卡依次-》Inspecotrs-》Raw
我們簡(jiǎn)單分析,
Get指明了url和http的版本。
host指明了host的地址。
accept-language指明了瀏覽器使用的語言
accept-Encoding指明了是否可以使用對(duì)瀏覽器到服務(wù)器之間的數(shù)據(jù)進(jìn)行壓縮。
HttpResponse
下面我們來看看剛才我們請(qǐng)求的響應(yīng)。
我在fiddler中選中的是第12行數(shù)據(jù),選中右邊選項(xiàng)卡-》Inspecotrs-》Raw
Http/1/1 200 OK。是告訴大家,一切運(yùn)行良好。 200是一種狀態(tài),如果遇到問題可能會(huì)是404,500等。
其他細(xì)節(jié),大家可以自己查一下資料。
【通過更好的性能省錢和賺錢】
大家都可以明白。提升網(wǎng)站的性能,可以讓用戶更加滿意。而這也能讓我們省錢和賺錢。
省錢的辦法:
1、使用更小的帶寬
2、更少的服務(wù)器數(shù)量
賺錢的辦法:
增長(zhǎng)的銷售和流量
1、-每增加100毫秒載入Amzon.com 會(huì)減少銷售額的1%.web
2、-當(dāng)google maps 的主頁大小從100KB減少到70-80k時(shí),流量在第一周會(huì)增在10%,在隨后的3周會(huì)增長(zhǎng)到25%。
3、-google 已經(jīng)根據(jù)你網(wǎng)站的性能去幫助決定搜索排名。
對(duì)于網(wǎng)站性能對(duì)流量和銷售產(chǎn)生的影響請(qǐng)參見相關(guān)文章《web性能心理學(xué)》http://www.websiteoptimization.com/speed/tweak/psychology-web-performance/
【性能規(guī)則】
減少http request
如何減少http request呢?我們根據(jù)上邊提到fiddler偵聽到的http request 得知,好多次請(qǐng)求是去獲取css,javascript,和image的。
首先我們先來看看一個(gè)網(wǎng)站:
它是一個(gè)普通的網(wǎng)站他可以使用jquery來彈出圖片,我們用fiddler 來試試它。
我們可以看出。他包含了一些css文件,也使用了jquery。
讓我們看看這個(gè)網(wǎng)站的另一個(gè)版本。
樣子是一模一樣的,我就不show圖了。
讓我們看看fiddler 又幫我們抓到了什么:
js和css文件都變成1個(gè)了。我們把上邊的js文件合并成1個(gè)js文件。這樣我們就減少了httprequest的次數(shù)。
2.發(fā)送盡可能少的數(shù)據(jù)
我們回到fiddler。查看第一個(gè)網(wǎng)站的jquery文件“jquery-1.6.2.js。
它的普通版本是236k。
第一個(gè)網(wǎng)站需要加載js的總大小是279k。
而第二個(gè)網(wǎng)站需要加載js的大小是50.8k。
我們做了什么呢?只是把js文件里的白空格去掉了,就是對(duì)js文件的壓縮。
css文件也如此。在最后的product版本上,我們使用合并的文件可以減少httprequest次數(shù)。當(dāng)然在debug的時(shí)候我們要保留空行增加代碼的可讀性。
關(guān)于壓縮js的工具我們?cè)诰W(wǎng)上可以找到很多,就不列舉。
3.減少交互的次數(shù)(適當(dāng)使用緩存)
讓我們刷新一下第二個(gè)網(wǎng)站,并觀看fiddler。我們可以發(fā)現(xiàn),第二次加載至向服務(wù)器獲取了default.aspx。
并沒有重新加載js、css和圖片。因?yàn)闉g覽器已經(jīng)替我們緩存了那些文件。
后續(xù)的章節(jié)是
【性能測(cè)量】
【基礎(chǔ)實(shí)施性能】
【前段性能】
【五花八門的性能】
江西省上饒市廣信區(qū)三清山中大道588號(hào)7棟5號(hào)
電話:0793-8313026 7094119
傳真:0793-8313026
手機(jī):18079306668 13576325382 曾
郵箱:174216168@qq.com
QQ:174216168
Copyright © 2008-2019 (srlrcm.cn) 獵人傳媒. All Rights Reserved.
贛ICP備08101270號(hào)-1 百度統(tǒng)計(jì)