取消的AJAX请求会降低后续导航速度
发布时间:2020-12-16 02:55:42 所属栏目:百科 来源:网络整理
导读:在我的应用程序用户请求报告时,jquery AJAX(使用.load())调用一个执行大量数字运算和mySQL请求的文件.加载通常需要5-6秒,而.ajaxStart()和.ajaxStop()用于在加载期间显示加载gif. 问题: 如果用户单击“生成报告”按钮,然后改变主意并尝试导航到应用程序挂起
在我的应用程序用户请求报告时,jquery AJAX(使用.load())调用一个执行大量数字运算和mySQL请求的文件.加载通常需要5-6秒,而.ajaxStart()和.ajaxStop()用于在加载期间显示加载gif.
问题: 如果用户单击“生成报告”按钮,然后改变主意并尝试导航到应用程序挂起的另一个页面,并且不会导航到新页面5-6秒.我可以通过删除加载gif来判断.ajaxStop()在尝试导航到新页面时会立即触发,但看起来ajax请求在浏览器加载下一页之前完成. 这是正常的行为吗?关于如何修复/重组这个的任何建议? 解决方法
我相信.ajaxStop()只有在beforeSend回调返回false时才会取消ajax请求.在这种情况下,呼叫尚未启动,服务器尚未收到请求.一旦请求被发送到服务器,页面就不再能够控制请求,直到它返回.导航离开页面时会触发.ajaxStop()请求,因为最后一次ajax调用已成功完成,因此终止执行.
以上是来自jquery api网站的.ajaxStop()命令的摘录.看来,一旦完成呼叫并且已发送请求,即使用户正在导航到其他页面,您的服务器也正在完成呼叫.如果这是一个很大的通话,它可能会导致你遇到的延迟. 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |