在我的durandal应用程序中,我每10秒发生一次轮询请求。但有时如果服务器停止响应该轮询,请求将保持挂起状态。如果有超过浏览器支持的待处理请求,则冻结应用程序并需要浏览器刷新。
我已经尽可能地结合了民意调查,并确保只有在前一个请求完成后才会发出新请求。但我仍然有很多并行民意调查。此外,此时切换到插座并不容易。
想知道在SPA世界中避免这些问题的最佳做法是什么。
答案 0 :(得分:1)
通过递归地将它们链接在一起,您应该能够阻止无限数量的并行ajax请求。假设你有两个并行的ajax请求,你可以这样做:
function doCallOne() {
$.get('urlOne').done(doCallOne);
}
function doCallTwo() {
$.get('urlTwo').done(doCallTwo);
}
doCallOne();
doCallTwo();
现在,您将拥有在上一个呼叫结算后连续链接的呼叫。您可以进一步扩展这些功能以产生最小延迟,手动退出等等。然而,永远不会发生的事情是,呼叫一个人有多个未决电话。