我想测量用户在用PHP编写的特定网页上花费的时间,并将时间保存在数据库中。我怎样才能做到这一点?请问,有人可以向我解释一下吗?
var startTime = 0;
$(function() {
startTime = Date.now();
});
$(window).bind('beforeunload', function() {
$.ajax({async: false, // Necessary, because the closing code has
// to be suspended until the ajax succeeds
url: 'store.php',
data: {time: Date.now() - startTime},
success: function(text) {
// This is executed when the response has been received
// text is response data
}
});
});
答案 0 :(得分:2)
我建议使用Google分析等服务,因为它们可以为您的请求提供完整的解决方案。
对于上面的代码,发生的事情是您获取用户进入您网站的时间戳,然后在用户离开时(通过使用卸载)获取另一个时间戳。最后,上面的代码减去它们以获得花费的总时间。
上述缺点是您将丢失大量数据,因为卸载可能没有足够的时间来提交请求。 我还建议您将所有代码移到"文档准备好"。
另一种解决方案是每隔X分钟向服务器发送一个请求,告知用户仍然在这里。这样,您就可以粗略估计用户在您网站上花费的时间。
P.S。如果您打算使用jQuery提供的卸载功能。在这里查看文档:{{3}}