为Backbone.js定义超时时间.同步实现



我在我的一个项目中使用backbone,集成了与外部API的通信。我想使用实时更新记录。由于我无法访问这个外部应用程序的主后端,并且它们既不提供websocket服务器也不提供长轮询端点,因此我基本上只能选择使用setInterval和50秒的周期进行常规轮询。它一直运行得很好。我的问题是边缘情况。如果由于某种原因,API请求挂起超过50秒,那么我将立即触发一个新请求。这意味着现在有2个挂起请求,最终会加起来。是否有办法为请求设置超时?我知道所有的请求都指向主干。同步,但我正在检查源代码,我没有看到任何可行的方法来设置XmlHttpRequest的超时。有没有一种方法可以干净地做到这一点,而不覆盖行为?或者是否有其他解决方案/变通方法?

options参数中的timeout:milliseconds选项传递给fetch。这些选项被直接传递给jQuery。ajax,它处理低级XHR调用:

 collection.fetch({timeout:50000});

或者,您可以通过调用jQuery为应用程序发出的所有请求设置全局超时。ajaxSetup在你的应用程序启动:

$.ajaxSetup({timeout:50000});

最新更新