1

我有一个网站页面,大多数访问者都会花时间在上面。该站点使用 PHP 与 Codeigniter 和 jQuery。

问题:但是,我相信像 Piwik 这样的跟踪系统通过从访问者加载页面的时间减去访问者离开该页面到页面的时间来计算在页面上花费的时间。

有没有解决的办法?也许使用 javascript 来触发跟踪系统,以便它知道访问者正在离开页面?

4

2 回答 2

2

编辑:我在 $id 中添加了一些“盐”,我不知道.. 我觉得它更加独特,尽管我认为由于使用 micro 不太可能会有类似的 ID秒,但只是为了更加确定

像这样
的 JQuery:每 10 秒对 StayAlive.php 的 Ajax 请求

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();
?>
于 2012-03-17T17:59:50.097 回答
2

当用户离开页面时,您可以使用以下内容向页面发送 Ajax 请求(他们不一定要加载新请求)。

$(window).unload( function () {
$.ajax({
    type: "POST",
    url: "yourpage.php",
    data: {
        command: "disconnect"
    },
    dataType: "json",
    async: false,
    success: function(data) {}
});
});

您可以创建一个 javascript,在用户加载页面时生成时间戳,并在用户离开时将其传递给 .php 页面。计算时间戳的差异以计算出他们在页面上花费的时间。

于 2012-03-18T06:32:24.583 回答