我正在使用一个Backbone.js框架,其中我使用的是dot net Web API(仅由我创建)。我从骨干的获取方法调用 API 控制器。如果此 api 在 30 秒内没有响应,我想显示一些错误消息。我应该在哪里设置此超时期限以及如何设置?
默认情况下,Backbone 使用 jQuery.ajax
发出请求,这意味着您可以使用 jQuery.ajaxSetup
设置默认值。在您的情况下,您将设置超时选项:
超时
设置请求的超时(以毫秒为单位)。
尝试
$.ajaxSetup({
timeout: 30000
});
您可以手动设置所有获取和保存调用的超时,如下所示:
MyModelInstance.fetch({
timeout: 6000
});
但是,如果您希望全局使用特定的超时,则更简单的做法是在首次加载 Backbone 时包装 Backbone.sync
方法。 试试这个:
//Set the default options for all our sync calls - in this case, we're only messing with the timeout
var syncDefaultOptions = {
timeout: 8000
};
//Save a copy of the default Backbone.sync function
var sync = Backbone.sync;
//Wrap the default Backbone.sync function with one that automatically applies our default options, but still allows them to be overwritten manually
Backbone.sync = function(method, model, options) {
options = _.defaults(options || {}, syncDefaultOptions);
sync(method, model, options);
};
请注意,上面的代码依赖于 lodash ( _.defaults()
),但您可能很容易在没有该依赖项的情况下复制它