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

原创 2012年03月29日 10:31:24

记录打开页面时间:

在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
}

 

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ASP.NET MVC页面执行时间

1) 在我们的项目中添加一个类文件, public class PerformanceActionAttributeFilter : ActionFilterAttribute ...

ASP.NET用户登录后跳转到 登录前 的页面 url 跳转

在一般有用户登录的网站中,都会有需要用户登录后才能操作的页面,如果在用户登录后能跳转到之前的页面,就会给用户一个很好的体验,也能让他们更容易的浏览要操作的页面。这中间主要用到的是获取Url参数,获取后...

ASP.NET读取DLL文件中的页面和用户控件(VirtualPathProvider VirtualFile)

这篇文章用来介绍一下如何通过VirtualPathProvider来获取程序集中的页面和用户控件的内容。这样做的好处是可以在项目中达到所有的文件路径是统一的,不管你的页面或者控件来自于任何一个程序集。...

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

实验22——添加页脚 在本实验中,我们会在Employee 页面添加页脚,通过本实验理解分部视图。 什么是“分部视图”? 从逻辑上看,分部视图是一种可重用的视图,不会直接显示,包含于...

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

本文主要介绍了ASP.NET MVC中页眉页脚的添加和Layout页面的使用,并实现了用户角色分配及Action Filter的使用

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

Asp.net 权限控制 利用用户控件include到页面

为了使用户能够根据需要方便地定义控件,ASP.NET引入了 Web 窗体用户控件的概念。实际上,只要将.aspx稍作修改即可转换为 Web 用户控件,扩展名为 .ascx,.ascx和.aspx文件一...

Asp.net 权限控制 利用用户控件include到页面

转http://www.cnblogs.com/YoursLan/archive/2010/10/08/1845698.html 引言     电子商务系统对安全问题有较高的要求,传统的访...

一个ASP.NET用户注册页面

  • 2010-02-10 10:30
  • 214KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)