3
  1. 用户单击执行某些 ajax 请求的链接 - 假设此请求需要 20 秒。
  2. 在请求完成之前,用户单击将整个页面重定向(无 ajax)到另一个页面的 oder 链接。

ajax请求会发生什么?它总是在服务器端完成,但响应不会出现在任何地方?或者,服务器端的 ajax 请求可能会立即被“杀死”?

我问是因为我有一些脚本需要一些时间才能运行,但用户现在不必知道结果 - 它只是触发并忘记 - 也许 ajax 中甚至有一些选项可以强制它不发送任何响应?

4

2 回答 2

5

浏览器应该终止 AJAX 请求,关闭与服务器的连接;但是,这并不意味着您在服务器上的处理也一定会被杀死:ignore_user_abort()

于 2012-05-27T13:17:56.203 回答
2

服务器将完成请求,不知道客户端已经“继续”。服务器将像往常一样将响应返回给客户端。客户端将简单地忽略响应。

因此,期望服务器端的一切都正常发生,因此“即发即弃”方法将起作用(因为客户端已继续前进并已“忘记”)。但是,如果您想在客户端做任何响应(这将否定“忘记”部分),那么新页面就无法拦截响应。浏览器会忽略它。

于 2012-05-27T13:17:56.380 回答