【问题标题】:How to fire an event on browser closing [duplicate]如何在浏览器关闭时触发事件[重复]
【发布时间】:2011-06-20 14:24:16
【问题描述】:

可能重复:
javascript detect browser close tab/close browser

大家好,

我在浏览器关闭时检测到会话结束时遇到问题,我该如何得到这个,我想触发一个查询以将登录时间信息存储在数据库中,请帮助我。 谢谢大家

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    依赖它是非常不可靠的,关闭浏览器时可能无法完成ajax查询。

    解决方案:

    每隔x 秒发送一次心跳请求,以判断用户是否离开。

    【讨论】:

    • 互联网上我们最不需要的就是网站滥用 AJAX 来获取“心跳”请求。
    • @meagar 我同意,我不知道为什么提问者想要在浏览器关闭而不是传统方式上注册用户。我以为他正在构建一个实时分析服务..
    【解决方案2】:

    您可以创建一个隐藏按钮,然后使用触发按钮单击事件

    function doUnload()
    {
     if (window.event.clientX < 0 && window.event.clientY < 0)
     {
       document.getElementByID('HiddenButton').click() }
    }
    <body onunload="doUnload()">
    

    从未尝试过,但它可能会工作:)

    或者你可以使用 global.aspx 方法

        protected void Session_End(object sender, EventArgs e)
        {
    

    做某事; }

        protected void Application_End(object sender, EventArgs e)
        {
    

    做某事; }

    Sp

    【讨论】:

    • -1 Application_End 与客户端活动没有直接关系,并且 Session_End 不可靠,因为它在会话处于非活动状态一段时间后被触发
    • 我想这取决于他们要求它有多准确。只是想把它扔出去。 :)
    猜你喜欢
    • 2012-01-08
    • 2017-12-02
    • 2019-01-10
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多