kogu的博客

随手/随脚/随意/随性--男人要做自已喜欢的事情

asp.net 记录用户打开和关闭页面的时间

记录打开页面时间:

在Page_Load事件里记录一下。

protected void Page_Load(object sender, EventArgs e){

    if (!Page.IsPostBack)
    {

          //记录用户打开页面时间
           Log_User_Time.SetUserTime(Session, Request, Request.Url.PathAndQuery, DateTime.Now, true);

    }

}

 

记录关闭页面的时间:

通过触发页面的onbeforeunload 事件,JS异步提到处理程序,记录时间。

    window.onbeforeunload = LogUserOutTime;
    var requestObj = null;
    function LogUserOutTime() {
        requestObj = getXMLHttpRequest();
        if (!!requestObj) {         
            requestObj.open("GET", "/LogUserOutTime.ashx", true);
            requestObj.onreadystatechange = reqend;
            requestObj.send(null);
        }
    }

    function reqend() {        
    }

    function getXMLHttpRequest() {
        var xmlRequestObj = null;
        try {
            if (window.ActiveXObject) {
                // Internet Explorer
                try {
                    xmlRequestObj = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        xmlRequestObj = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {
                        throw e;
                    }
                }
            } else if (window.XMLHttpRequest) {
                // Firefox, Opera 8.0+, Safari
                xmlRequestObj = new window.XMLHttpRequest();
            }
        } catch (e) {
        }
        return xmlRequestObj;
    }

 

其它的代码:

LogUserOutTime.ashx 如下所示:

<%@ WebHandler Language="C#" Class="LogUserOutTime" %>

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.SessionState;
using nnbh.BaseComm.CommonClass;
using System.Text;

/// <summary>
/// 记录用户操作时间
/// </summary>
public class LogUserOutTime : IHttpHandler, IRequiresSessionState
{
    #region IHttpHandler 成员

    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.Cache.SetNoStore();  //设置为不缓存     
       
        Log_User_Time.SetUserTime(context.Session, context.Request, context.Request.UrlReferrer.PathAndQuery, DateTime.Now, false);

        context.Response.Clear();
        context.Response.End();
    }

    #endregion
}

 

此方法在关闭页面和关闭浏览器时都会触发。

阅读更多
个人分类: javascript ASP.NET
想对作者说点什么? 我来说一句

开和关闭MS-WORD的资源

2010年07月02日 96KB 下载

开和关闭计算器进程

2010年07月02日 66KB 下载

C#线程及定时器的功能实现

2015年07月28日 42KB 下载

C#控制打开和关闭光驱

2007年09月23日 28KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭