首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >取消的AJAX请求减慢了后续导航速度

取消的AJAX请求减慢了后续导航速度
EN

Stack Overflow用户
提问于 2012-09-11 15:35:07
回答 1查看 742关注 0票数 5

在我的应用程序中,当用户请求报告时,会对一个文件进行jquery (使用.load() )调用,该文件执行大量的数字处理和mySQL请求。加载通常需要5-6秒,加载期间使用.ajaxStart().ajaxStop()来显示加载gif。

这一问题:

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

这是正常行为吗?对于如何解决/重组这一问题,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2012-10-03 18:39:23

我认为,只有当.ajaxStop回调返回false时,beforeSend ()才会取消beforeSend请求。在这种情况下,调用没有启动,服务器也没有收到请求。一旦请求被发送到服务器,页面将不再控制请求,直到它返回。当从页面导航时,.ajaxStop()请求会触发,因为最后一次ajax调用已经成功完成,因此会终止执行。

如果上次未完成的Ajax请求通过在ajaxStop回调函数中返回false来取消,则还会触发beforeSend事件。

以上摘录自jquery网站上的.ajaxStop()命令。看来,一旦发出了调用并发送了请求,即使用户导航到另一个页面,您的服务器仍在完成调用。如果是这么大的一个电话,可能会导致你所经历的延迟。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12373278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档