当点击刷新按钮时是否可以停止页面上发生的所有请求/脚本?
我有一个花费几分钟的$ .ajax请求。我试图在卸载事件中执行window.stop()。我试过xhr = $ .ajax(...);和xhr.abort();以及在互联网上找到的任何其他方法,并且没有任何效果
这可能吗?为什么浏览器仍然等待该请求完成并发回响应而不刷新页面?
以后编辑(解决):似乎等待的问题其实是从服务器。如果在ajax调用中,脚本使用SESSION,则网页将冻结,直到请求完成,即使我们中止xhr。
这是为什么?说明:
会话数据通常在脚本终止后存储,无需调用session_write_close(),但由于会话数据被锁定以防止并发写入,因此只有一个脚本可以随时在会话上运行。将帧集与会话一起使用时,由于此锁定,您将体验逐帧加载的帧。只要完成对会话变量的所有更改,就可以通过结束会话来缩短加载所有帧所需的时间。
停止浏览器请求
停止浏览器请求
回答
也许尝试在刷新之前立即取消,如here?
window.onbeforeunload = function(event) {
xhr.abort();
};
OP说他已经叫'abort()' –
对不起,那没用。我已经试过 – roshkattu
事实上,这解决了_abort_问题。这里是_xhr.abort(); _ result'XHR BEFORE ABORT:scripts.js:497 Object {readyState:1} scripts.js:498 XHR AFTER ABORT:scripts.js:500 Object {readyState:0 ,status:0,statusText:“abort”} '但页面仍然等待XHR完成,然后重新加载..似乎它是一个服务器问题...... Slaks告诉我在上面的评论 – roshkattu
- 1. PHP:阻止浏览器请求
- 2. 停止浏览器请求保存密码
- 3. HTTP请求的浏览器
- 4. 取消请求浏览器
- 5. 停止服务器请求
- 6. 停止请求+++++++++
- 7. 请求模块,当浏览器取消时如何停止流式传输
- 8. 如何让客户端浏览器停止请求过期的会话ID?
- 9. 如何通过ajax请求加载JSON时停止锁定浏览器?
- 10. 当使用Nginx提供静态文件时,浏览器停止请求
- 11. Ruby/CGI:如何检测浏览器是否请求“停止”操作并忽略请求
- 12. 停止从WPF web浏览器控件
- 13. 停止Android浏览器被刷新
- 14. WP7 web浏览器 - 停止渲染
- 15. 从selenium webdriver停止浏览器加载
- 16. 停止web浏览器开始在C#
- 17. 停止加载URL的Android浏览器
- 18. CrystalReports在浏览器中停止工作
- 19. 停止网络浏览器缓存
- 20. 停止在浏览器开发工具
- 21. 如何停止浏览器的热键?
- 22. 我可以安全阻止Dalvik浏览器代理请求吗?
- 23. 移动浏览器将自动GET请求,终止POST响应
- 24. ClickOnce,WebService“请求失败,HTTP状态403:禁止。” IE浏览器
- 25. IIS如何阻止来自浏览器的http请求
- 26. Mootools:发送请求时如何阻止浏览器冻结
- 27. 多个ipcam请求可以阻止浏览器?
- 28. 为什么浏览器阻止特定的Ajax请求?
- 29. 如何阻止非浏览器客户端提交请求?
- 30. 如何防止浏览器请求资产来自ajax响应
如果你有一个Ajax请求采取多分钟,你做错了什么已经有... – s1lence
浏览器不会等待现有的AJAX请求。您的_server_可能正在等待(例如,对于会话) – SLaks
调用'.abort'应该停止XHR等待响应。你看到什么让你说它不起作用? –