我喜欢衡量用户在我的 webapp 的特定页面上花费的时间。首先,我考虑在浏览器中捕获 onunload/onbeforeunload 事件,并通过 XMLHttpRequest 通知服务器用户现在要离开,例如:
<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>
其中 xxx 是呈现页面时的初始 tiemstamp。
不幸的是,该解决方案不适用于所有浏览器(例如 Opera)。所以我的第二个想法是不断地ping服务器。要计算访问时间,必须将最后一次 ping 时间从初始时间戳中减去。但我认为这也不是一个好的解决方案,尤其是当用户打开 3 个或 5 个选项卡并且每个选项卡每 500 毫秒触发一次事件时......
你如何衡量访问时间?有人有更好的主意来获得花在一个特定页面上的时间吗?