gpt4 book ai didi

ajax - 取消 AJAX 请求会减慢后续导航速度

转载 作者:行者123 更新时间:2023-11-30 23:46:30 25 4
gpt4 key购买 nike

在我的应用程序中,当用户请求报告时,会对执行大量数字运算和 mySQL 请求的文件进行 jquery AJAX(使用 .load() )调用。加载一般需要 5-6 秒,使用 .ajaxStart().ajaxStop() 在加载过程中显示加载 gif。

问题:

如果用户单击“生成报告”按钮,然后改变主意并尝试导航到另一个页面,应用程序将挂起,并且在 5-6 秒内不会导航到新页面。我可以从加载 gif 的删除中看出,在尝试导航到新页面时 .ajaxStop() 会立即触发,但看起来 ajax 请求在浏览器加载下一页之前就已完成。

这是正常行为吗?关于如何修复/重组这个问题有什么建议吗?

最佳答案

我相信 .ajaxStop() 仅当 beforeSend 回调返回 false 时才会取消 ajax 请求。此时,调用尚未发起,服务器未收到请求。一旦请求被发送到服务器,页面就不再控制该请求,直到它返回。离开页面时会触发 .ajaxStop() 请求,因为最后一次 ajax 调用(如果成功完成)会终止执行。

The ajaxStop event is also triggered if the last outstanding Ajax request is cancelled by returning false within the beforeSend callback function.

以上摘录自 jquery api 网站 .ajaxStop()命令。看起来,一旦发出调用并发送请求,即使用户正在导航到不同的页面,您的服务器也会完成调用。如果调用量很大,可能会导致您遇到延迟。

希望这有帮助。

关于ajax - 取消 AJAX 请求会减慢后续导航速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com