我喜欢来衡量用户我的webapp的particualr网页上停留的时间。 首先我想到了在浏览器中捕捉onunload的/ onbeforeunload事件,并通知通过用户离开现在喜欢一个XMLHttpRequest服务器:
<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>
其中xxx是当网页被呈现的inital tiemstamp。
不幸的是在所有的浏览器(如Opera)这个解决方案行不通。 所以,我的第二个想法是不断ping服务器。 为了计算访问时间总得有人去最后的ping时间,从inital时间戳减去它。 但我不认为这就是一个很好的解决办法尤其是当用户运行结束3个或5个标签,每个标签触发事件每500毫秒...
你会如何衡量访问时间? 有人有一个更好的主意,以获得花了一个particualr页面上的时间?
通过这样的工具如谷歌分析所采用的方法是,访问时间为用户碰到的第一个页面,他们打在一个单一的“访问”的最后一页的时间的时间测量。 单个访问被定义为一个用户(饼干),其中每个访问足够接近先前在时间系列的页面浏览量。 我不知道限制是多少但是。
根据我的经验,这些千丝万缕的卸载事件等招数都近乎是侵入性和用户不欣赏他们。 因此他们增加很少或几乎没有价值了像建设从饼干加上页面查看数据访问更加被动的做法。
我根据你的一些业务目标表明几乎所有的网络分析软件包。
- 谷歌分析 :(免费)
- 雅虎分析 :(免费)(测试版)
- Woopra :(免费)(测试版)
- Omniture的 :(贵)(功能最丰富,很难学习曲线)
[有其他人,有的广告网络报告更有针对性...]
为什么不来看看谷歌Analytics(分析)标准跟踪将捕获这些统计数据为您服务。
http://www.google.com/analytics/
这取决于你有多少误差允许。 如果错误是在几十分钟的顺序,你只需要一个访问日志,并设置会话超时间隔的最后一页。 如果你只允许几百毫秒,你需要ping通。 如果错误是在之间的任何地方,你仍然需要平,尽管速率较低; 或接受一个事实,即谁关闭浏览器将不发射onunload事件的用户。