- 用户单击执行某些 ajax 请求的链接 - 假设此请求需要 20 秒。
- 在请求完成之前,用户单击将整个页面重定向(无 ajax)到另一个页面的 oder 链接。
ajax请求会发生什么?它总是在服务器端完成,但响应不会出现在任何地方?或者,服务器端的 ajax 请求可能会立即被“杀死”?
我问是因为我有一些脚本需要一些时间才能运行,但用户现在不必知道结果 - 它只是触发并忘记 - 也许 ajax 中甚至有一些选项可以强制它不发送任何响应?
浏览器应该终止 AJAX 请求,关闭与服务器的连接;但是,这并不意味着您在服务器上的处理也一定会被杀死:ignore_user_abort()
服务器将完成请求,不知道客户端已经“继续”。服务器将像往常一样将响应返回给客户端。客户端将简单地忽略响应。
因此,期望服务器端的一切都正常发生,因此“即发即弃”方法将起作用(因为客户端已继续前进并已“忘记”)。但是,如果您想在客户端做任何响应(这将否定“忘记”部分),那么新页面就无法拦截响应。浏览器会忽略它。