我希望监控我们网站的最终用户体验,并将其与已经记录在服务器端的计时信息相关联.我的假设是,这需要javascript在请求开始时(window.onbeforeunload)和加载结束时(window.onload)捕获时间戳.基本上这 - " 测量Web应用程序响应时间:与客户会面 "
有更好的方法吗?
我应该期待什么样的性能损失(数量级)?
结果有多好?
Yasei No Umi.. 13
还有来自雅虎的Boomerang.
有一些在Jiffy和Episodes中不存在的高级功能.还支持支持它的浏览器中的Navigation Timing API(Chrome 6,IE 9)
还有来自雅虎的Boomerang.
有一些在Jiffy和Episodes中不存在的高级功能.还支持支持它的浏览器中的Navigation Timing API(Chrome 6,IE 9)
为了完整起见,您现在可以在一些现代浏览器中使用Navigation timing API :https://developer.mozilla.org/en-US/docs/Navigation_timing
function onLoad() { var now = new Date().getTime(); var page_load_time = now - performance.timing.navigationStart; console.log("User-perceived page loading time: " + page_load_time); }
第三方编辑
基于caniuse.com的导航定时今天得到广泛支持(10/2016)
EDIT(2013):试试Boomerang,就像@ yasei-no-umi建议的那样.它得到了积极的维护.
- 旧答案 -
我们使用Jiffy.
它的使用和修改非常简单 - 我们编写了自己的服务器端代码(而不是Jiffy的Apache + perl)并使用了Jiffy的JS.
关于性能损失 - 客户端没有一个.JS本身非常快,并且在页面加载后可以使用XHR完成向服务器的报告,这不会影响用户体验.在服务器端,您将获得两倍的请求.如果这是一个瓶颈,您可以为时序响应设置不同的服务器.