我很想知道我的webapplication的实际平均页面加载时间。
简单地说,我的普通访问者在开始使用我网站上的页面之前如何等待日志。从他们点击链接到我的网站,直到网站完成渲染并准备接受输入。
标准解决方案似乎是使用Javascript来比较从脚本到window.onload()事件中的脚本的时间。
(看到: http://www.dreamincode.net/code/snippet1908.htm)
这对我来说似乎不是一个非常精确的措施,因为它忽略了解析我的域并获得足够的HTML内容来开始Javascript解析所花费的时间。
它看起来像Safari在页面实际完成加载之前触发window.onload(http://www.howtocreate.co.uk/safaribenchmarks.html)。
有任何想法吗?
是否有可能通过Javascript获取当前请求的时间?
在所有浏览器中可靠地准备好所有事件后会发生什么事件?
http://www.webpagetest.org/ 是测量加载时间的绝佳资源
此外,Google chorme dev工具还有一个时间轴面板,您可以在其中记录事件,
这是一个2.5分钟的视频,向您展示谷歌浏览器中的时间轴如何工作 http://www.youtube.com/watch?v=RhaWYQ44WEc
萤火 有一个“网络计时模式”,您可以在其中查看下载构成您网页的每个资源所需的时间。
另外,您应该测量服务器准备请求所需的时间。由于您无法影响浏览器和网络,因此服务器上的渲染时间应尽可能小。
Firebug是一个很好的资源,有关您的页面加载的其他信息。此外,带有YSlow的Firebug更进了一步。 YSlow对你的页面运行了一些检查,并根据某些规则评估它的性能(你使用的是CDN,是你的CSS和JS压缩等)。我发现对我的网站做一些重大改进(JS压缩很棒)是非常宝贵的。
试试雅虎的YSLOW,它会回答你的问题帖子,但它只适用于FireFox(实际上它是firebug的一个插件)
计算加载时间的最准确方法是在服务器端:一旦构建页面,在用户的浏览器上显示需要多少将取决于:
- 当前的网络流量;
- 用户的电脑规格;
- 他正在使用哪种浏览器。
因此,使用JavaScript并不是一个很好的衡量标准,因为有很多因素你无法改变。
您可以做的最好的事情是衡量在服务器上生成每个页面的时间 - 那 你可以改进。
毋庸置疑,这将取决于您编写的语言。
可以做的一件事是使用Javascript来获取当客户端事件发生时触发回发到服务器的当前时间。将此值传递回服务器端将允许您将其作为您可以比较的初始“触发”时间呈现给客户端。
而不是使用onLoad,我相信您可以将脚本内联到文档的末尾,以便在浏览器呈现脚本的该部分时立即运行。这将允许您将内联脚本运行时的当前时间与用户启动呼叫时捕获的触发时间进行比较。
但是,正如Seb所提到的,由于您只能可靠地控制加载时的服务器端,因此最好在度量标准中包含服务器页面生成时间。如果您同时拥有这两个指标,则至少可以看到页面生成所花费的总时间,以及取决于客户端可能发生的各种延迟的程度。
我一直都找到了 Pingdom工具全页测试 很有用。它不是代码内的解决方案,但它确实可以让您快速了解页面的加载速度。