将页面上花费的时间报告给服务器

时间:2009-12-20 02:20:08

标签: javascript onunload

当访问者通过关闭标签页或浏览器离开页面时,是否可以将页面上的时间花费报告回服务器?使用Javascript。

它适用于Firefox,谷歌浏览器,Safari,Opera和IE8(IE7和6并不重要)。

但它无论如何都会奏效;即使在浏览器关闭时,或者键入了另一个地址。

4 个答案:

答案 0 :(得分:4)

您可以尝试windows.onbeforeunload,但无法保证它在所有情况下均可使用。

无论如何,我建议您使用google analytics,其中包含许多其他功能(我怀疑你可以做得比谷歌更好!)。它是免费的。

答案 1 :(得分:2)

如果你想自己实现这个,你需要决定何时获得开始时间 - 你可以在页面顶部放置一个脚本标签,这可以在内容呈现之前执行,onload事件,这将等到所有图像和脚本都已加载,或类似JQuery ready event之类的东西,这在DOM准备就绪时发生,但不等待加载资源。此时,您需要记录开始时间:

<script>var startTime = new Date().getTime();</script>

然后你可以监听onunload或onbeforeunload事件并使用图像发送带有info的GET请求:

<script>
  window.onunload = function() {
    var i = new Image();
    var timeSpentMilliseconds = new Date().getTime() - startTime;
    i.src = '/pagetime?timespent=' + timeSpentMilliseconds;
  }
</script>

您必须进行一些测试,以确定是否始终发送请求 - 我确定有时浏览器会关闭或标签在完成触发之前切换。

答案 2 :(得分:1)

您还可以尝试PiWik,它会为您提供有关您网站访问者的类似统计信息。

答案 3 :(得分:1)

为什么不直接使用Google Analytics? 除了你想要的,它还为你的分析提供了更多的数据。 而且,它是免费的。 问候, freezea。