在SPA中等待AJAX​​请求冻结应用程序

时间:2015-07-08 06:32:51

标签: ajax single-page-application durandal

在我的durandal应用程序中,我每10秒发生一次轮询请求。但有时如果服务器停止响应该轮询,请求将保持挂起状态。如果有超过浏览器支持的待处理请求,则冻结应用程序并需要浏览器刷新。

我已经尽可能地结合了民意调查,并确保只有在前一个请求完成后才会发出新请求。但我仍然有很多并行民意调查。此外,此时切换到插座并不容易。

想知道在SPA世界中避免这些问题的最佳做法是什么。

1 个答案:

答案 0 :(得分:1)

通过递归地将它们链接在一起,您应该能够阻止无限数量的并行ajax请求。假设你有两个并行的ajax请求,你可以这样做:

function doCallOne() { 
    $.get('urlOne').done(doCallOne);
}
function doCallTwo() { 
    $.get('urlTwo').done(doCallTwo);
}
doCallOne();
doCallTwo();

现在,您将拥有在上一个呼叫结算后连续链接的呼叫。您可以进一步扩展这些功能以产生最小延迟,手动退出等等。然而,永远不会发生的事情是,呼叫一个人有多个未决电话。