Chu*_*ckE 12 ajax real-time polling backbone.js
我在我的项目中使用骨干,与外部API的通信集成.我想使用记录的实时更新.由于我无法访问此外部应用程序的主后端,并且它们既不提供websocket服务器也不提供长轮询端点,所以我基本上可以选择使用setInterval进行常规轮询,并且周期为50秒.它一直运作良好.我的问题是边缘情况.如果出于某种原因,API请求会挂起,超过50秒,我想说,我将立即触发新请求.这意味着,现在有2个挂起请求,最终会加起来.有没有办法为请求设置超时?我知道所有请求都导致Backbone.sync,但我正在检查源代码,我没有看到任何可行的方法来设置XmlHttpRequest的超时.有没有办法干净地完成这项工作而不会覆盖行为?还是有其他解决方案/解决方法吗?
jev*_*lio 22
只需timeout:milliseconds在options参数中传递一个选项即可fetch.选项直接传递给jQuery.ajax,后者处理低级XHR调用:
collection.fetch({timeout:50000});
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过在应用程序启动时调用jQuery.ajaxSetup来为应用程序发出的所有请求设置全局超时:
$.ajaxSetup({timeout:50000});
Run Code Online (Sandbox Code Playgroud)