当前位置: 首页 > 面试题库 >

JavaScript,浏览器,关闭窗口-在关闭窗口时发送AJAX请求或运行脚本

唐高卓
2023-03-14
问题内容

我试图找出用户何时离开指定页面。找出他何时使用页面内的链接进行导航是没有问题的,但是我有点需要标记一些东西,例如当他关闭窗口或键入另一个URL并按Enter时。第二个不是那么重要,但第一个是重要。所以这是一个问题:

我如何查看用户何时关闭我的页面(捕获window.close事件),然后……并没有什么关系(我需要发送AJAX请求,但是如果可以获取它以运行警报,我可以剩下的)。


问题答案:

unloadbeforeunloadjavascript事件,但是这些事件对于Ajax请求是不可靠的(不能保证在这些事件之一中发起的请求将到达服务器)。

因此,强烈建议 要这样做,您应该寻找替代方法。

如果您确实需要此功能,请考虑使用“
ping”式的解决方案。每分钟发送一次请求,基本上告诉服务器“我还在这里”。然后,如果服务器超过两分钟未收到此类请求(您必须考虑延迟等),则认为客户端处于脱机状态。

另一个解决方案是使用unloadbeforeunload执行Sjax请求(同步JavaScript和XML),但是完全不建议这样做。这样做基本上会冻结用户的浏览器,直到请求完成为止,他们不会喜欢(即使请求花费很少的时间)。



 类似资料:
  • vue3 监听浏览器窗口关闭事件,在窗口close前发送一个请求? 现在想在浏览器窗口关闭前给后台发个请求,但是在window的beforeunload里写好像不触发?请问该如何解决呢?

  • 问题内容: 有谁知道我可以使用JavaScript检查浏览器窗口何时关闭并弹出确认对话框询问用户是否确认退出浏览器还是改变主意的任何方式? 问题答案: window.onbeforeunload = function (e) { var e = e || window.event;

  • 问题内容: 我尝试使用以下代码在关闭浏览器窗口时收到警报: 它可以工作,但是如果页面包含一个超链接,则单击该超链接会引发相同的警报。仅在关闭浏览器窗口时才需要显示警报,而在单击超链接时则不需要。 问题答案: 保持您的代码不变,并使用jQuery处理链接:

  • 问题内容: 我有一个聊天应用程序,我希望每当用户不小心或手动关闭浏览器时,他都应该收到警报,以便可以执行各种清理操作。我希望在before事件上使用更多的东西,但我希望将其用于特定的网页,因为所有其他网页也在加载前被调用。请帮忙 问题答案: 我们应防止或提示用户执行这些操作将丢失其数据。 单击后退浏览器按钮。 单击刷新浏览器按钮。 点击浏览器的关闭按钮。 单击前进浏览器按钮。 键盘击键- + (关

  • 本文向大家介绍javascript在当前窗口关闭前检测窗口是否关闭,包括了javascript在当前窗口关闭前检测窗口是否关闭的使用技巧和注意事项,需要的朋友参考一下 在当前窗口关闭前,检测当前窗口是否关闭 在ie9中,如果刷新文档的话,unloadform和onbeforeunload都会执行,如果是关闭页面的话只会执行onbeforeunload事件 值得注意的是,onunload在关闭页面时

  • 问题内容: 我想捕获浏览器窗口/选项卡关闭事件。我已经尝试使用jQuery以下内容: 但这也适用于表单提交,这不是我想要的。我想要一个仅在用户关闭窗口时才触发的事件。 问题答案: 每当用户出于任何原因离开您的页面时,都会触发该事件。 例如,如果用户提交表单,单击链接,关闭窗口(或选项卡)或使用地址栏,搜索框或书签进入新页面,则将触发该事件。 您可以使用以下代码排除表单提交和超链接(其他框架除外):