js统计网页在线时间的脚本

517 查看

每xxxxx毫秒检测一次是否在线,
TR_COUNT次之后设定改用户为假死状态(即不在当前页面活动,afk..)
当页面关闭时把停留时间送出,

/**//* ----------------------------------------------------------------------------
* Script Name: online.js
* Last Modified: 2008-4-13 22:25
* Author: meyu
* Copyright (c) 2008
* Purpose: 跟踪在线时间
* ----------------------------------------------------------------------------*/

function TR_XMLHttpObject(url)...{
    this.XMLHttp=null;
    this.url=url;
    this.init=function()...{
        if(window.XMLHttpRequest)...{
            this.XMLHttp=new XMLHttpRequest();
        }else if(window.ActiveXObject)...{
            this.XMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    };
    this.init();
    this.sendData=function(param)...{
        with(this.XMLHttp)...{
            open('GET',this.url+(param||''),true);
            send(null);
        }
    };
}
if(/flag=flush/i.test(window.location.search))...{
    var TR_COUNT=0;
    var TR_x=new TR_XMLHttpObject(window.location.href.replace(/&?(?:flush_count=)(d+)/i,
        function(a,d)...{
            TR_COUNT=parseInt(d);
            return "";
            })
    );
    function send()...{
        TR_COUNT++;
        if(TR_COUNT < 120)...{
            TR_x.sendData('&flush_count='+TR_COUNT);
        }
    }
    window.setInterval(send,30000);
    window.onunload=function()...{TR_x.sendData('&flush_count='+TR_COUNT);};
}