我有巨大的ajax应用程序。有时用户关闭浏览器时ajax无法正常工作。发生这种情况是因为他们的浏览器中安装了许多第三方插件,这些插件可以正常停止(可能)正常工作。
现在我无法控制用户,因此无法让用户关注他们的浏览器。现在我能在这种情况下做些什么。即使在浏览器中安装了错误的扩展名,有没有办法强制ajax工作?
在浏览器中安装了不良扩展程序(如询问工具栏,阿里巴巴新闻自动收报机等)后,代码无法正常工作
window.onbeforeunload = function () {
$.ajax({
url: site_url + '/agent/send_offline',
type: 'post',
cache: false,
async: false,
...
});
};
答案 0 :(得分:3)
当用户离开您的网页时,您无法始终能够执行ajax调用。这不是你可以在浏览器中可靠地做的事情。它有时可能有效,但不能保证以一切可能的方式工作,以便关闭网页。
有一些解决方法:
您可以维护从页面到服务器的websocket连接,当用户离开页面时,浏览器将自动关闭套接字,然后您的服务器就会知道用户离开了页面。
您可以通过简单的ajax调用让您的页面每隔几分钟轮询您的服务器,当服务器不再获取轮询ajax调用时,它就会知道该页面已被关闭。
答案 1 :(得分:0)
你可以通过在浏览器中存储cookie来在放置ajax代码的每一分钟后调用你的页面来实现。尝试这个角度