【发布时间】:2016-04-26 20:06:15
【问题描述】:
我可以使用 jQuery 查看每个完成的时间,但我需要 all 主干 ajax 请求的开始和结束。
这样我就可以向用户展示并指示用户知道该应用正在运行。
我可以将每个请求推送并弹出到一个数组中,但想知道是否有更简单的方法?
Backbone.ajax = function() {
$A.report('BB - ajax called');
var xhr = Backbone.$.ajax.apply(Backbone.$, arguments);
xhr.always(function(){
$A.report('BB - ajax completed');
});
return xhr;
};
这是一种解决方案:
// Set the default implementation of `Backbone.ajax` to proxy through to `$`.
// Override this if you'd like to use a different library.
var requestArray = [];
Backbone.ajax = function() {
var xhr = Backbone.$.ajax.apply(Backbone.$, arguments);
requestArray.push('mark');
$A.report('BB - Ajax Started');
xhr.always(function(){
requestArray.pop();
$A.report('BB - Ajax Completed');
if(requestArray.length === 0){
$A.report('BB - All Ajax Completed');
}
});
return xhr;
};
【问题讨论】:
标签: javascript ajax backbone.js