如何在用户请求另一个用户之前停留在页面上多长时间?或者直接离开该网站?跟踪用户在页面上停留的时间?
基本上,我想要做一个检查,如果用户停留在页面上20分钟或更长的时间,然后做一些事情。
我相信这将需要PHP和JavaScript,但我不完全知道如何完成它。
也许在php中使用这个$_SERVER
来获得执行时间,然后得到一个时间戳,当用户单击其他地方,并简单地比较两者?
如何在用户请求另一个用户之前停留在页面上多长时间?或者直接离开该网站?跟踪用户在页面上停留的时间?
基本上,我想要做一个检查,如果用户停留在页面上20分钟或更长的时间,然后做一些事情。
我相信这将需要PHP和JavaScript,但我不完全知道如何完成它。
也许在php中使用这个$_SERVER
来获得执行时间,然后得到一个时间戳,当用户单击其他地方,并简单地比较两者?
你可以用简单的JavaScript做到这一切。
对于单页:
window.setTimeout(function(){
// Do stuff after 20 minutes of loading the page
// Then using jQuery you can call a PHP script to do stuff like so:
$.ajax({
url: '/myScript.php',
method: 'POST',
success: function(result){
//The request was successful and the output is stored in a variable: result
},
complete: function(){
//Do stuff when the request is completed (Ignores if success or not)
},
beforeSend: function(){
//Do something before the request is sent
}
});
}, 20 * 60 * 1000); //This is in milliseconds that's why I use the equation
对于多页:
我建议你设置一个用户点击一个页面,上如果cookie存在的每个页面检查时的cookie。如果存在,则每隔x秒钟执行一次查询,以查看自创建cookie以来20分钟是否已经过去。
对于全阿贾克斯的文件头:http://api.jquery.com/jQuery.ajax/
如果20分钟过去了,我需要使用php。不是在PHP中,那么我将如何使用你的代码去做这件事? – Maaz 2013-03-21 21:32:26
您使用Ajax请求。我会更新答案给你,所以这很明确:) – 2013-03-21 21:33:45
也请记住标记为回答:) – 2013-03-22 20:52:56
我已经把一些工作成一个小的JavaScript库和服务,次用户在网页上多久。它具有更准确(不完美)追加用户实际与页面进行交互的时间长度的额外好处。它忽略了用户切换到不同标签页,闲置,最小化浏览器等的时间。Google Analytics方法有一个缺点(据我了解),它只会检查您的域处理新请求的时间,而不是始终准确。它不考虑,如果有人不再查看网页,已经最小化浏览器,自去年加载你的页面切换选项卡以3个不同的网页等
仅供参考 - 无解的是完美的。但希望这个提供价值。您可以实施Javaacript API并自行收集统计信息,也可以使用完全为您提供的服务。
其用法的例子:
包括在你的页面:
<script src="https://timemejs.com/timeme.min.js"></script>
<script type="text/javascript">
TimeMe.initialize({
currentPageName: "home-page", // page name
idleTimeoutInSeconds: 15 // time before user considered idle
});
</script>
如果你想自己的时间报告给后端:
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","ENTER_URL_HERE",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
xmlhttp.send(timeSpentOnPage);
TimeMe.js也支持通过WebSockets的发送时间的数据,所以你不必试图迫使一个完整的HTTP请求到document.onbeforeunload
事件。
timemejs的网址不工作(了)。它没有https。 – marlar 2017-02-28 16:34:47
谢谢!我已经修复了这个链接。 – 2017-03-04 13:53:40
这可能会有所帮助:http://stackoverflow.com/a/3893491/235710 – 2013-03-21 21:29:48
你可以安装谷歌分析 – 2013-03-21 21:41:54
你能更具体地说明“做某事”的含义吗?请记住,自从他们加载你的页面以来,时间流逝*并不关联他们已经*查看你的页面的时间。我在浏览器中打开了标签,我几个小时都没看过。 – 2013-03-21 21:56:09