我正在使用Backbone.js框架,我使用的是dot net Web API(仅由我创建)。我从骨干的fetch方法调用API控制器。如果这个api没有响应30秒我想显示一些错误消息。我应该在哪里设置这个时间以及如何设置?
答案 0 :(得分:1)
默认情况下,Backbone使用jQuery.ajax
发出请求,这意味着您可以使用jQuery.ajaxSetup
设置默认值。在您的情况下,您可以设置timeout选项:
<强>超时强>
设置请求的超时(以毫秒为单位)。
尝试
$.ajaxSetup({
timeout: 30000
});
答案 1 :(得分:1)
您可以使用所有提取和保存调用手动设置超时,如下所示:
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()
),但您可能很容易复制它而没有相关的依赖