【问题标题】:Run AJAX call on page exit在页面退出时运行 AJAX 调用
【发布时间】:2012-07-18 06:46:31
【问题描述】:

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

根据文档:

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

我正在尝试在用户退出页面之前将用户的数据(姓名、年龄和一大串数字)一次性发送到一个 php 文件。

这可能吗?

谢谢。

【问题讨论】:

  • 基本上?不可靠。
  • 不需要那么可靠,如果它在 90% 的时间内有效,我会很高兴。它不是重复的,但无论如何谢谢 - 这个问题是关于 ajax

标签: php jquery ajax dom


【解决方案1】:

你可以试试beforeunload

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

【讨论】:

  • 我这里的问题是ajax请求,而不是事件触发。
【解决方案2】:

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

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

【讨论】:

  • 数据不是很重要,如果它只有 90% 的时间我会很高兴。
【解决方案3】:

看看这些:

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() 以便在连接断开时它不会终止!

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多