【发布时间】:2011-06-17 09:54:57
【问题描述】:
我正在寻找一种方法来计算访问者停留在网站上的时间,同时在更改页面时不重新启动或中断计时器。
【问题讨论】:
标签: php javascript mysql wordpress
我正在寻找一种方法来计算访问者停留在网站上的时间,同时在更改页面时不重新启动或中断计时器。
【问题讨论】:
标签: php javascript mysql wordpress
将初始访问时间存储在会话值中。以后对站点的任何访问都使用辅助会话变量来保存上次访问的时间,并据此计算您在站点上的时间。
除非您使用 Ajax 更新会话值,否则用户可能会在您的网站上(在同一页面上)活跃 20 分钟,但它会显示为零长度访问。
基本示例:
<?php
session_start();
if(isset($_SESSION['firstVisit']))
$_SESSION['latestVisit'] = date();
else
$_SESSION['firstVisit'] = date();
echo $_SESSION['firstVisit'] . " - " . $_SESSION['latestVisit'];
?>
【讨论】:
您可以在用户请求第一页的那一刻开始会话。通过会话,您可以逐页跟踪用户。这样您就可以计算他们访问的第一页和最后一页请求之间的总时间。
您还应该能够在页面卸载时发送 Ajax 请求,从而可以检测在单个页面上花费的时间。但是,如果他们在多个窗口/标签中浏览,则您的阅读结果是错误的,除非您能够以某种方式检测到页面焦点。
将两者结合起来,你应该可以得到一个相当完整的画面。
【讨论】:
将数据保存在session中,用户注销时保存数据
(如果用户没有注销,它不会被保存,但这应该不是问题)
编辑:如果用户没有登录/注销,您必须捕捉会话何时终止并保存数据。在评估数据时,您必须补偿会话在它死亡之前的生存时间,例如5分钟或其他什么,然后减去它。会给你一个大概的数字,而不是用户查看网站的确切时间。
【讨论】:
您可以跟踪用户登录的时间,但如果您想要(未登录)用户停留的时间,我认为这是不可能的,因为有很多方法可以从一页到另一页
【讨论】: