纵观使用开发工具中的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的单挑。 –