在页面退出时运行AJAX调用

时间:2012-07-18 06:46:31

标签: php jquery ajax dom

我尝试使用事件$(window).unload运行同步AJAX调用时遇到了一些问题。

根据文件说明:

  

从jQuery 1.8开始,不推荐使用async:false。

我试图在退出页面之前将用户的数据(名称,年龄和大量数字)一次性发送到php文件。

这可能吗?

感谢。

4 个答案:

答案 0 :(得分:1)

您可以尝试beforeunload

$(window).bind('beforeunload', function() {
//Do your processing
return "You want to close the window?"
});

答案 1 :(得分:1)

如果这些数据很重要,我甚至都不会尝试这样做,因为无法保证甚至发生unload事件。该人可以关闭浏览器,拉动计算机上的插件等。

我会在页面上设置一个保存按钮。

答案 2 :(得分:0)

是的,但您不知道浏览器是否会在请求离开您的计算机之前中断该请求。我认为这取决于浏览器。几乎可以肯定,客户端无法处理响应。

答案 3 :(得分:0)

看看这些:

Can the unload Event be Used to Reliably fire ajax Request?

Why can't I use jQuery to fire an AJAX request from an unload event handler?

Running a PHP through Ajax on Unload

结论:

最好不要有异步请求。 并且你必须在你的php中设置 ignore_user_abort(),这样当连接断开时它不会终止!