首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery异步调用块页面重新加载

问Jquery异步调用块页面重新加载
EN

Stack Overflow用户
提问于 2013-04-29 05:44:46
回答 2查看 1.2K关注 0票数 1

我有一个每5秒执行一次备份的函数。有时无法访问备份的目标服务器,请求会停止,直到超时。由于这会影响用户界面,所以我将这个“备份功能”作为一个异步ajax请求来执行。

代码语言:javascript
复制
setInterval("doSync()", 5000 );

function doSync() {    
     $.ajax({
         url: "backup.php",
         async : true
     });
 };

这在后台运行得非常好。但是一旦执行页面的重新加载,已经在等待的备份函数调用将被完成。因此,在最坏的情况下,如果我有一个30秒超时的备份,用户必须等待30秒才能加载新页面。这对于用户来说是不可接受的。

我可以实施哪种策略来避免这种情况?可以终止备份请求...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-29 05:54:14

我认为这个问题是浏览器特有的。实际上,它们中的大多数都限制了对同一主机的并行请求的数量,这就是为什么在重新加载页面之前它会“等待”。

如果您通过AJAX请求调用与尝试重新加载的URL完全相同的URL,Firefox将不会同时运行多个请求。一种简单的解决方法是将随机查询字符串附加到URL。

另一种选择是使用javascript beforeunload事件来取消AJAX请求:Abort Ajax requests using jQuery

票数 0
EN

Stack Overflow用户

发布于 2013-04-29 05:59:52

我可能会考虑在你的情况下设置超时。我还发现类似的问题已经解决了:click

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

https://stackoverflow.com/questions/16268258

复制
相关文章

相似问题

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