javascript - 停止浏览器请求

标签 javascript ajax

点击刷新按钮时是否可以停止页面上发生的所有请求/脚本?
我有一个 $.ajax 请求,需要几分钟的时间。我尝试在卸载事件中执行 window.stop() ;我尝试过 xhr = $.ajax(...);和 xhr.abort();以及通过互联网找到的任何其他方法都没有效果。

这可能吗?为什么浏览器仍然等待该请求完成并发回响应而不刷新页面?


稍后编辑(已解决):看来等待问题实际上是来自服务器。如果在ajax调用中,脚本使用SESSION,那么即使我们中止xhr,网页也会卡住直到请求完成。

这是为什么?说明:

session 数据通常在脚本终止后存储,无需调用 session_write_close(),但由于 session 数据被锁定以防止并发写入,因此任何时候只有一个脚本可以对 session 进行操作。当将框架集与 session 一起使用时,由于这种锁定,您将经历框架一一加载。您可以在 session 变量的所有更改完成后立即结束 session ,从而减少加载所有帧所需的时间。

最佳答案

也许尝试在刷新之前取消,如 here 所示?

window.onbeforeunload = function(event) {
    xhr.abort();
};

关于javascript - 停止浏览器请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162909/

相关文章:

javascript - Greasemonkey - 删除 div 类(绝对初学者)

javascript - 如何调试 jQuery POST AJAX 操作?

javascript - 我应该使用什么技术将内容加载到动态 div 中?

javascript - 可观察与回调

javascript - 为什么 Blob of Array 比 Blob of Uint8Array 小?

php - jQuery/Ajax动态加载特定id的PHP页面

javascript - rails : update table cell without refresh by using Ajax

javascript - 在数字前添加 + 或 -

jquery - 显示 Ajax 调用进度的最佳方式是什么?

javascript - 如何高效加载过滤后的 AJAX 内容?