问题描述
- 求教育: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/
时间: 2025-01-26 22:29:08