我正在寻找一种方法让访问者留在网站上,而不是在更改页面时重新启动或中断计时器。
答案 0 :(得分:1)
将初始访问时间存储在会话值中。以后对网站的任何访问都会使用辅助会话变量来保存上次访问时间,并从中计算出您网站上的时间。
除非您使用Ajax更新会话值,否则用户可能在您的网站上(在同一页面上)处于活动状态20分钟,但它会显示为零长度访问。
基本示例:
<?php
session_start();
if(isset($_SESSION['firstVisit']))
$_SESSION['latestVisit'] = date();
else
$_SESSION['firstVisit'] = date();
echo $_SESSION['firstVisit'] . " - " . $_SESSION['latestVisit'];
?>
答案 1 :(得分:1)
您可以在用户请求第一页时启动会话。通过会话,您可以在页面之间跟踪用户。所以你可以计算他们访问的第一页和最后一页之间的总时间。
您还应该能够在页面卸载时发送Ajax请求,从而可以检测在单个页面上花费的时间。但是,如果他们在多个窗口/标签中浏览,那么您的阅读是错误的,除非您以某种方式检测到页面焦点。
结合这两者,你应该能够得到一个完整的图片。
答案 2 :(得分:0)
将数据存储在会话中,并在用户执行注销时保存数据
(如果用户没有注销,则不会保存,但这应该不是问题)
编辑:如果用户没有登录/注销,则必须在会话终止时捕获并保存数据。在评估数据时,您必须补偿会话在其消亡之前所处的时间,例如5分钟或其他,并减去它。会给你一个大概的数字,而不是用户查看网站的确切时间。
答案 3 :(得分:0)
您可以跟踪用户登录的时间,但是如果您想要留出时间(未登录)用户,我认为这是不可能的,因为有很多方法可以从一页到另一页