縱觀使用開發工具中的Chrome網絡選項卡頁面加載時,我收到在以下鏈接下面的時序:
http://www.seed-city.com/barneys-farm-seeds/liberty-haze
102 requests | 131.24KB | 8.41s (onload: 8.50s, DOMContentLoaded: 6.61s)
102 requests | 131.47KB | 8.47s (onload: 8.56s, DOMContentLoaded: 6.82s)
102 requests | 131.45KB | 8.71s (onload: 8.79s, DOMContentLoaded: 7.06s)
現在,讓一個(somewhat simple)變化:
103 requests | 110.16KB | 3.77s (onload: 3.86s, DOMContentLoaded: 2.03s)
103 requests | 110.17KB | 3.85s (onload: 3.94s, DOMContentLoaded: 2.21s)
103 requests | 110.16KB | 4.20s (onload: 3.50s, DOMContentLoaded: 2.28s)
這是從您當前頁面的網絡選項卡輸出的typical HAR log:
http://pastebin.com/pM5Dd1Fw
的重要組成部分,是實現正等待將近五秒鐘,甚至做任何瀏覽器(僅剪斷,顯示相關線路):
{
"startedDateTime": "2012-09-29T04:58:07.861Z",
"time": 4831,
"request": {
"method": "GET",
"url": "http://www.seed-city.com/barneys-farm-seeds/liberty-haze",
"httpVersion": "HTTP/1.1",
...
},
"cache": {},
"timings": {
"blocked": 0,
"dns": 16,
"connect": 129,
"send": 0,
"wait": 4677, // <<< Right here
"receive": 8,
"ssl": -1
}
}
而對於slow.html
頁時機:
{
"startedDateTime": "2012-09-29T05:04:51.624Z",
"time": 92,
"request": {
"method": "GET",
"url": "http://example.com/t/slow.html",
"httpVersion": "HTTP/1.1",
...
},
"timings": {
"blocked": 0,
"dns": 7,
"connect": 38,
"send": 0,
"wait": 44, // <<< Right here
"receive": 1,
"ssl": -1
},
"pageref": "page_3"
}
這是4677ms
VS 44ms
。下面是一個典型HAR日誌,以更新的頁面:
http://pastebin.com/Jgm1YyU3
所以我做了什麼來實現這些(非常真實和具體的)改進?我搬到了Javascript將body
標籤的底部:
http://pastebin.com/H9ajG99H
這使得提高兩倍。首先,您允許瀏覽器繼續並在開始與阻止進程(script
調用)進行交互之前加載內容。所以你的客戶會「注意」一個更快的網站,只是因爲網頁似乎加載得更快(當你真的只是讓它加載時)。其次,您需要等到body
標籤基本上完全加載,然後纔開始篡改內容。
它也看起來像你沒有在你的頭文件中使用緩存指令,告訴瀏覽器不要檢查文件的更新很長時間。因此,您的Twitter和Facebook圖標看起來像瀏覽器認爲需要與服務器一起重新檢查,從理論上來說,這是一種往返旅程,除非經常這樣做。但花費在「等待」的時間:
twitter_aqu_64.png 1.32s
ajax-loader.gif 1.31s
ssl-icon.jpg 1.31s
現在,我不是緩存控制方面的專家;這是一種黑暗藝術。但是,這些時機讓我覺得有可能會發生一些事情。
試試這個答案高速緩存控制的更多信息:
HTML Cache control
在其上運行的網頁性能分析器。 http://sixrevisions.com/tools/free-website-speed-testing/ –
您是否使用YSlow插件等工具檢查過您的網站?這會讓你對你正在等待的東西有很多的瞭解。 – ThatSteveGuy
那麼,我會從這裏開始:http://developer.yahoo.com/performance/rules.html感謝NSFW的單挑。 –