【发布时间】:2012-09-04 14:15:26
【问题描述】:
在我的应用程序中,当用户请求报告时,会对执行大量数字运算和 mySQL 请求的文件进行 jquery AJAX(使用 .load())调用。加载一般需要5-6秒,加载过程中使用.ajaxStart()和.ajaxStop()显示加载gif。
问题:
如果用户单击“生成报告”按钮,然后改变主意并尝试导航到另一个页面,应用程序将挂起,并且在 5-6 秒内没有导航到新页面。我可以从加载 gif 的删除中看出 .ajaxStop() 在尝试导航到新页面时立即触发,但似乎 ajax 请求在浏览器加载下一页之前完成。
这是正常行为吗?有关如何修复/重组此问题的任何建议?
【问题讨论】:
-
我只是想发表评论并告诉你,你并不孤单!我有这个确切的问题。从 Chrome 的检查器和 Firebug 来看,浏览器已经取消了使用 AJAX 发出的待处理网络请求,并且只有下一页的“新”请求为“待处理”。然而,在它真正选择离开之前,它似乎仍会挂起 5-10 秒。
-
这里相同:浏览器总是延迟到现有的 ajax 请求完成。即使不再需要响应。
-
您是否在使用通过跨域请求添加 OpenID 凭据的库?