求教育:jQuery的deferrd.progress()在实际项目中怎么用

jQuery的deferred(延迟)对象中的progress()方法我只知道是当deferred对象生成进度通知时调用进度回调函数progressCallbacks,但我实在无法明白“生成进度通知时”这个在实际项目应用中到底是个神马情况,虚心求指教...最好是有progress()的实例。

使用 $.Deferred() 方法,以及 $.when() 等方法创造出来的对象,有如下的常用方法:
resolve , reject , notify ;
done , fail , progress ;
另外还有 promise 、 then 和 always 方法。

resolve 方法会触发 done 的回调执行, reject 会触发 fail 的回调, notify 会触发 progress 的回调。如下:

var wait = function(ms) {
var dtd = $.Deferred();
//触发done 回调,输出“XXXX”
setTimeout(dtd.resolve, ms);

//触发fail回调,输出“失败了”

// setTimeout(dtd.reject, ms);

//触发progress回调,输出“等待中”

// setTimeout(dtd.notify, ms);
return dtd.promise(); //此处也可以直接返回dtd
};

wait(2500).done(function() {
console.log('haha,师太,你可让老衲久等了');
}).fail(function() {
console.log('失败了');
}).progress(function(res) {
console.log('等待中...');
});

由上可知,progress主要处理一些需要进度通知的情况,通过调用notify可以实现进度通知。

看文档
http://api.jquery.com/deferred.progress/