Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何测量用户的访问时间_Javascript_Web Analytics_Visitor Statistic - Fatal编程技术网

Javascript 如何测量用户的访问时间

Javascript 如何测量用户的访问时间,javascript,web-analytics,visitor-statistic,Javascript,Web Analytics,Visitor Statistic,我喜欢测量用户在我的webapp的某个页面上花费的时间。首先,我考虑在浏览器中捕获onunload/onbeforeunload事件,并通过XMLHttpRequest通知服务器用户现在要离开,如下所示: <body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body> 。。。 其中xxx是呈现页面时的初始tiemstamp 不幸的是,此解决方案不能在所有浏览器(如Opera)中使用。所

我喜欢测量用户在我的webapp的某个页面上花费的时间。首先,我考虑在浏览器中捕获onunload/onbeforeunload事件,并通过XMLHttpRequest通知服务器用户现在要离开,如下所示:

<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>
。。。
其中xxx是呈现页面时的初始tiemstamp

不幸的是,此解决方案不能在所有浏览器(如Opera)中使用。所以我的第二个想法是不断地ping服务器。要计算访问时间,必须使用最后一次ping时间并从初始时间戳中减去它。但我也不认为这是一个好的解决方案,尤其是当一个用户打开了3或5个选项卡,并且每个选项卡每500毫秒触发一次事件时


你会如何衡量参观时间?是否有人有更好的方法来获取在某个特定页面上花费的时间?

谷歌分析等工具使用的方法是,访问时间是指用户在一次“访问”中点击第一页到最后一页的时间。单次访问定义为一个用户(cookie)的一系列页面视图,其中每次访问在时间上与前一次访问足够接近。然而,我不知道这个极限是多少


根据我的经验,这些卸载事件之类的技巧几乎是侵入性的,用户并不欣赏它们。因此,与更被动的方法相比,它们几乎没有任何价值,比如从cookies和页面视图数据构建访问。

为什么不看看谷歌分析?标准跟踪将为您捕获这些统计数据


这取决于您允许的错误程度。如果错误大约为几十分钟,您只需要一个访问日志,并为最后一页设置会话超时时间间隔。 如果只允许数百毫秒,则需要ping。
如果错误介于两者之间,您仍然需要ping,尽管速率较低;或者接受这样一个事实,即对于关闭浏览器的用户,不会触发onunload事件。

根据您的某些业务目标,我建议您使用几乎所有的web分析包

  • :(免费)
  • :(免费)(测试版)
  • :(免费)(测试版)
  • :(昂贵)(大多数功能丰富,学习曲线困难)

  • [还有一些,一些更适合广告网络报道…]

    你最后做得怎么样?我也在考虑ping服务器