📅  最后修改于: 2023-12-03 15:16:41.634000             🧑  作者: Mango
jQuery deferred.progress()
是 jQuery 的延迟对象(Deferred Object)方法之一,用于绑定一个或多个处理程序(progress handlers),它们在每次延迟对象触发进度更新时执行。可以通过 deferred.notify()
方法来触发该事件。该方法最初是与 AJAX 相关的,但不仅限于此用法。
deferred.progress(progressCallbacks)
progressCallbacks
:可选参数,指定一个或多个进度处理程序。可以是函数或函数数组。返回一个延迟对象。
var deferred = $.Deferred();
// 绑定一个进度处理程序
deferred.progress(function(progressValue) {
console.log('进度更新:' + progressValue);
});
deferred.notify(50); // 触发进度更新事件并传递参数
上面的代码中,当 deferred
延迟对象调用 notify()
方法并传递参数 50
时,绑定的进度处理程序会被执行,并在控制台输出 进度更新:50
。
deferred
延迟对象已经被解决或被拒绝时添加,它们会立即执行。deferred
延迟对象已经触发进度更新时添加,它们会立即执行并传递最后一个进度值。如果该方法中没有传递参数,那么传递的值为 undefined
。var deferred = $.Deferred();
// 绑定多个进度处理程序
deferred.progress([function(progressValue) {
console.log('进度更新1:' + progressValue);
}, function(progressValue) {
console.log('进度更新2:' + progressValue);
}]);
deferred.notify(50); // 触发进度更新事件并传递参数
上面的代码中,绑定了两个进度处理程序,当 deferred
延迟对象调用 notify()
方法并传递参数 50
时,两个处理程序都会被执行并在控制台输出相应的信息。
通过 jQuery deferred.progress()
方法,可以在延迟对象触发进度更新时执行绑定的进度处理程序,实现针对异步操作的进度跟踪和交互。在实际开发中,该方法可以广泛应用于如文件上传、数据下载等涉及进度条展示的场景。