php - 如何区分页面刷新和关闭页面

标签 php javascript

我有一个网络应用程序游戏,在游戏中我想拥有它,这样如果用户关闭页面或他们的浏览器,它会自动将他们注销。我尝试使用附加到窗口的 onbeforeunload 事件:

window.onbeforeunload = function() {
    // perform logout functions here
}

问题是,如果用户刷新页面,它也会触发。有什么方法可以检测用户是完全关闭整个页面,还是只是刷新页面?

最佳答案

没有可检测到的差异。要自动注销用户,您应该在存储登录或 session 信息的 cookie 上设置过期时间。因此,如果您将其设置为 1 小时,则用户基本上会在该时间后注销,因为 cookie 将被销毁。如果您想在他们仍在与网站交互时推迟此自动注销,您可以在他们每次执行某种操作(单击链接、激活 AJAX 调用等)时重置 cookie 的过期时间。这意味着他们会在 1 小时不活动后注销,而不是从登录后仅 1 小时注销,这听起来更像您想要的。

如果将 cookie 的过期时间设置为 0,那么它将在 session 结束后过期。这通常发生在用户完全退出浏览器时。这也是另一种选择。

关于php - 如何区分页面刷新和关闭页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875380/

相关文章:

javascript - Google Visualization Table Chart - 更改列名称

javascript - 在 Jade 中使用 indexOf

php - 如何在 PHP 中访问类方法的私有(private)函数中的 self::in?

php - 字符串组合匹配

cakephp - Cakephp 1.3 和 PHP 5.3.2 的时区和更多问题

javascript自动完成性能问题

javascript - 如何在 Vue.js 中滑动过渡两个组件

php - 从 Dropbox Directory 拉取和显示网站图库中的图像

php/jquery 搜索框

javascript - 根据值更改甘特图中的条形颜色