none
网页关闭执行问题 RRS feed

  • 问题

  • 在“退出”按钮中 执行 记录时间的事件。
    问题:但是 如果 我直接关闭网页的话,就没有执行事件了。如何能  关闭页面以后就能记录事件呢??

    2010年1月21日 1:53

答案

  • 谢谢各位的 建议。

    我想 也 过 其他 方法 。。比如 做 个 时间计表 一直 对 数据库进行更新 。
    这样 就可以 知道 大概 退出的 时间 在 多少之内 也可以 知道 网络中断 最后 的 大概 时间 ,不过 这个 做 是不是 会 给 数据库带  来 压力呀 ??

    肯定会给数据库造成影响的。这就要看你的用户数和你的这个业务的重要性。
    【孟子E章】
    • 已标记为答案 Jan coki 2010年1月25日 9:45
    2010年1月23日 2:15
    版主

全部回复

  • 你想记录什么事件?
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script language=javascript>
           function closePage()
           {
             var bl=window.confirm("你确定要关闭吗");
             if(bl)
             {
                alert("记录时间");
             }
             else
             {
                alert("不记录1");
             }
               
           }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        dfgfgfggf
        </div>
            <input id="Button1" type="button" value="关闭" onclick="closePage();" />
        </form>
    </body>
    </html>

    努力+方法=成功
    2010年1月21日 2:01
  • 这个是不是 点击 了  按钮 以后 才能 有 记录时间的 对么 ?开心?
    不是这个意思哦· ··
    就是 

    直接 按 X 关闭  或者 ALT +F4 关闭 网页   就能把 时间 记录到 数据库了·· ··

    2010年1月21日 2:17
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript">
             window.onbeforeunload = function() {
                alert("关闭窗口");
                }
    
    
        </script>
    </head>
    <body>
        <div>
        
        </div>
    </body>
    </html>
    
    这个代码有个缺点,就是刷新操作时,也会触发该事件。
    2010年1月21日 2:28
  • 你如果想关闭按钮页面执行对数据库操作,那么只有服务器端事件了,客户端事件是行的,
    但是asp.net页面没有关闭页面的服务器端事件,你需要重写事件,这样试试
    public partial class Default3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            this.Unload += new EventHandler(Page_Unload);
        }
    
        protected void Page_Unload(object sender, EventArgs e)
        {
            //这里面填写你需要的操作的代码,当页面结束的时候系统会自动调
            //用这个方法来执行你需要的服务器端的操作!
            //也就是在这里写你需要操作的相关数据库中的数据的代码
            
        }
    
    }


    努力+方法=成功
    • 已标记为答案 Jan coki 2010年1月21日 2:55
    • 取消答案标记 Jan coki 2010年1月21日 8:46
    • 已标记为答案 Jan coki 2010年1月22日 1:47
    • 取消答案标记 孟宪会Moderator 2010年1月22日 5:56
    2010年1月21日 2:31
  • 谢谢 开心 我试试 ···
    2010年1月21日 2:38
  • 开心 还在吗?用了这个unload这个代码后 我这边发现个问题 就是 只要页面刷新了以后 就会执行一次unload
    我在unload里放入 插入数据库的语句 ,然后发现 只要我点击页面的按钮 就会插入一次.

    有什么方法能解决这个问题吗??

    2010年1月21日 8:51
  • 这样的功能没有好方法,比如断掉网络、杀死浏览器进程等都无法更新数据了。好的做法是自己写退出按钮,在这里操作,其他方式退出这些时间不算
    【孟子E章】
    2010年1月21日 11:55
    版主
  • 谢谢 版主们···我想 也只能这样了 ···昨天 我也想了良久 好像 缺少 没有 好的解决方法····除非 自己 写个 浏览器 一样的 东西  但是 那就 违背了 初衷 而且 工程量 也变大了···

    2010年1月22日 1:49
  • 采用服务器端的事件page_UnLoad是完全错误的。

    【孟子E章】
    2010年1月22日 5:56
    版主
  • 要简单实现,你也只能采用html中事件,如<body onbeforeunload=""处理
    【孟子E章】
    2010年1月22日 5:57
    版主
  • 谢谢 ···孟版主· ·还有 一个 方法  :就是 是否 能 将 网页 的 关闭 这个 按钮 给 屏蔽掉??如果屏蔽了以后 就能按 我们 自己设置的 退出 按钮了··· 不过 我查过 很多 资料 好像 没有 提到 过 能 屏蔽 关闭 这个 按钮的 ?
    或者 隐藏标题栏 也可以 ····
    2010年1月22日 7:15
  • 客户端的东西屏蔽不了。不要做干涉客户端用户行为的功能
    【孟子E章】
    2010年1月22日 7:21
    版主
  • 采用服务器端的事件page_UnLoad是完全错误的。

    【孟子E章】
    是啊,竹子就郁闷,之前那个答案居然被采取了。
    所以,对这个帖子,竹子就不再发表意见了。

    服务器端的事件page_UnLoad是页面在服务端的生命周期的一部分,而不是客户端的,所以,这样的思路是完全错误的,差之千里!
    2010年1月22日 7:54
  • 你好,如果客户可以不使用IE的话,可以自己使用WebBrowser做一个浏览器的壳,退出事件就能比较容易捕捉。
    2010年1月22日 10:41
    版主
  • 谢谢各位的 建议。

    我想 也 过 其他 方法 。。比如 做 个 时间计表 一直 对 数据库进行更新 。
    这样 就可以 知道 大概 退出的 时间 在 多少之内 也可以 知道 网络中断 最后 的 大概 时间 ,不过 这个 做 是不是 会 给 数据库带  来 压力呀 ??

    2010年1月22日 15:05
  • 谢谢各位的 建议。

    我想 也 过 其他 方法 。。比如 做 个 时间计表 一直 对 数据库进行更新 。
    这样 就可以 知道 大概 退出的 时间 在 多少之内 也可以 知道 网络中断 最后 的 大概 时间 ,不过 这个 做 是不是 会 给 数据库带  来 压力呀 ??

    肯定会给数据库造成影响的。这就要看你的用户数和你的这个业务的重要性。
    【孟子E章】
    • 已标记为答案 Jan coki 2010年1月25日 9:45
    2010年1月23日 2:15
    版主
  • 谢谢 ··各位··谢谢 孟版主了·· 结贴 结贴··

    2010年1月25日 9:44