如果用户关闭浏览器,则从数据库中删除数据[重复]

Posted

技术标签:

【中文标题】如果用户关闭浏览器,则从数据库中删除数据[重复]【英文标题】:Delete data from database if user closed browser [duplicate] 【发布时间】:2017-05-26 21:48:01 【问题描述】:

您好,我如何检测用户是否关闭了浏览器并从数据库中删除某些内容? 我想将它用于在线计数,因为当用户关闭浏览器时,他仍然“在线”。

【问题讨论】:

您应该使用Jquery 库查看.unload()。然后,当页面卸载时,您发送Ajax 请求。 注意:SO 不是免费编码服务! this 可能有帮助吗? 【参考方案1】:

有一个事件。如果用户关闭实际的选项卡,此函数将运行。

window.onbeforeunload = function () 
    //make an ajax call here and modify your db

【讨论】:

这就是我要找的东西!谢谢! 但是如果假设用户系统自动关闭,那么这个脚本将如何工作。这不是我认为的解决方案。【参考方案2】:
$( window ).unload(function() 
  // call your ajax function for deleting database. 
);

您可以使用 jquery 卸载。因此,当用户尝试关闭浏览器时,该功能将加载。

【讨论】:

【参考方案3】:

“onunload”与“onbeforeunload”事件是正确的答案,但另外您必须向 php 文件发送 AJAX 调用。

window.onbeforeunload = function () 
    jQuery.ajax(url:"http://localhost:8888/do_somethink_in_db.php?", async:false);

$( window ).unload(function() 
  jQuery.ajax(url:"http://localhost:8888/do_somethink_in_db.php?", async:false)
);

注意:但当用户电脑断电时,此事件无法进行。但是如果你使用 nodejs 服务器,你可以检测到用户是离线还是在线。因为用socket.io(库nodejs)服务器检查心跳

【讨论】:

以上是关于如果用户关闭浏览器,则从数据库中删除数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Scala - 如果 DF1 中的数据与 DF2 中的列匹配,则从 DF1 中删除记录 [重复]

如果某些陈述为真,则从列表中删除对象[重复]

如果重复 x 次,则从数组中删除值 | JavaScript

如果两个值匹配,则从 php 中的多维关联数组中删除重复项

如果用户忘记注销并关闭浏览器,如何删除 Rails 中以前的会话?

如果有重复的 Ticker 并且超过一个月的时差,则从数据框中提取 Ticker 名称