asp.net 关闭页面或者离开页面 只要改变url地址 就记录在当前页面停留时间  前辈们 小辈跪求源码 谢谢 不够加分

解决方案 »

  1.   

    我现在的做法是:
    前台:
      var i=0;
        function show_secs() 

    document.fm0.time_spent.value =i;
    i=i+1;
    window.setTimeout('show_secs()',1000); 
    }function WinClose()
     {// var isClose=confirm('你确定要离开吗');
     //var isClose=confirm('你确定要离开吗');
    //if(isClose){ PageMethods.UpdateDB(UpdateSecceed); } PageMethods.UpdateDB(); 
     
     } 
    后台:
      public  void UpdateDB()
        {
            //执行SQL语句插入时间
           
            visitlog vobean = new visitlog();
            string t = Request.Form["time_spent"];
            username = Session["username"].ToString();
            zhang = Request.QueryString["zhang"];
            jie = Request.QueryString["jie"];
            zhishi = Request.QueryString["zhishi"];
            string datetime =Convert .ToString ( DateTime.Now);
            if (zhishi != null)
            {
                           if (!new visitlogDAO().ifExistVar("knowledgeid", zhishi))
                {
                    vobean.setusername(username);
                    vobean.setzhang(Convert.ToInt32(zhang));
                    vobean.setjie(Convert.ToInt32(jie));
                    vobean.setknowlegeid(Convert.ToInt32(zhishi));
                    vobean.setvisittime(t);
                    vobean.settime(datetime);
                    new visitlogDAO().insert(vobean);            }
                else
                {
                    new visitlogDAO().update(vobean);
                }
                        }    }无法实现,问题是js调用的是静态方法,而静态方法又无法获得页面控件值,请高手指点一下!!!!!!
      

  2.   

    <script language="C#" runat=server>DateTime startTime;void Page_Init (Object sender, EventArgs e) //页面加载
    {
    startTime = DateTime.Now;
    //Response.Write("page init<br/>");
    }protected override void Render(HtmlTextWriter writer) //加载结束
    {
      base.Render(writer);  DateTime endTime = DateTime.Now;
      Response.Write("停留时间为: " + (endTime-startTime));
    }</script>
    这个。。
      

  3.   

    HTTP 是无状态的
    可以使用 beforeunload   
    访问一个页面,写入Cookie、当页面跳转时,访问页改变时,记录时刻,两者之差就是页面停留时间 
     
      

  4.   

    关键是如何在静态方法中获得zhang,jie,zhishi,username等变量值,并存入数据库中呢?