我有一个网站页面,其中大部分访问者都会花时间。该站点使用PHP与Codeigniter和jQuery。
问题:但是,我相信像Piwik这样的跟踪系统会计算在页面上花费的时间,将访问者离开该页面的时间减去新页面他加载页面。
有解决方法吗?也许使用javascript来触发跟踪系统,以便它知道访问者正在离开页面?
答案 0 :(得分:2)
像这样的东西 JQuery的: Ajax每隔10秒向StayAlive.php发出请求
function pingPing(){
$.ajax(
{
type:'GET',
url:'StayAlive.php',
success: function()
{
setTimeout(pingPing, 10000);
}
}
}
PHP:StayAlive.php
<?php
function newUser(){
$id=sha1($_SERVER['HTTP_USER_AGENT'].microtime().$_SERVER['REMOTE_ADDR']);
setcookie("id", $id, time()+3600*24*365);
//create new row in the database for that $id
}
if (isset($_COOKIE["id"])){
//check if the id is in the database
//if yes => time_spent+=10
//if no => newUser();
}
else
newUser();
?>
答案 1 :(得分:2)
当用户离开页面时,您可以使用以下命令向页面发送Ajax请求(它们不一定要加载新页面)。
$(window).unload( function () {
$.ajax({
type: "POST",
url: "yourpage.php",
data: {
command: "disconnect"
},
dataType: "json",
async: false,
success: function(data) {}
});
});
您可以创建一个javascript,在加载页面时生成用户的时间戳,并在用户离开时将其传递给.php页面。计算时间戳的差异,计算出他们在页面上花了多长时间。