jquery1.5最大的改进是加入了
Deferred,
它的出现
,
使函数的回调方便很多
,
取代了网页加载完成后回调的函数数组
,
与重写后的
ajax
方法的返回实例结合
.
确切地说,Deferred
是由两个
_Deferred
实例组成
,
一个用于成功解决后的回调
(deferred),
一个用于失败返回后的回调
(failDeferred),
其中
failDeferred
所属函数被改了名字注册入
deferred.
jQuery.Deferred()返回实例deferred.
jQuery.extend(deferred, {
fail : failDeferred.done,
rejectWith : failDeferred.resolveWith,
reject : failDeferred.resolve,
isRejected : failDeferred.isResolved
})
DOM加载后回调的
readyList
只是一个
_Deferred
的实例
.
_Deferred也只是对于数组的封装
,
可将需要回调的函数注册进入
,
并提供几个可操作的函数
看下面一个例子:
// Create a Deferred and return its Promise
function asyncEvent() {
var dfd = jQuery.Deferred();
dfd.done(function() {
console.info(1)
}).done([ function() {
console.info(2)
}, function() {
console.info(3)
} ]).fail(function() {
console.info(-1)
});
setTimeout(function() {
dfd.resolve("hurray");
}, 1100);
setTimeout(function() {
dfd.reject("sorry");
}, 1200);
return dfd.promise(); // 实际上是 dfd 的部分复制 , 也可以返回 dfd, 但不推荐
}
// Attach a done and fail handler for the asyncEvent
$.when(asyncEvent()).then(function(status) {
console.info(status + ', things are going well');
}, function(status) {
console.info(status + ', you fail this time');
});
ajax返回实例与
deferred
结合后
,
可以写成
$.ajax({
url : "a.html"
}).done( function () { //success either
console.info(1);
}).fail( function () { //error either
console.info(2)
}).complete( function () {
console.info(3)
})
以下是jquery官方对于api的解释
deferred. done ()
Add handlers to be called when the Deferred object is resolved.
deferred.fail()
Add handlers to be called when the Deferred object is rejected.
deferred.isRejected()
Determine whether a Deferred object has been rejected.
deferred.isResolved()
Determine whether a Deferred object has been resolved.
deferred.promise()
Return a Deferred's Promise object.
deferred.reject()
Reject a Deferred object and call any failCallbacks with the given args.
deferred.rejectWith()
Reject a Deferred object and call any failCallbacks with the given context and args.
deferred.resolve()
Resolve a Deferred object and call any doneCallbacks with the given args.
deferred.resolveWith()
Resolve a Deferred object and call any doneCallbacks with the given context and args.
deferred.then()
Add handlers to be called when the Deferred object is resolved or rejected.
分享到:
相关推荐
jQuery 1.5版本是这个流行JavaScript库的一个重要里程碑,它包含了多项改进和新特性,旨在提高性能、增强功能和优化用户体验。以下是对jQuery 1.5版本类库的详细说明: 1. **核心性能提升**:jQuery 1.5在核心性能...
引言在那篇经典的关于jQuery1.5中Deferred使用方法介绍的文章中(译文见这里),有下面一段描述: $.ajax() returns an object packed with other deferred-related methods. I discussed promise(), but you’ll ...
jQuery的核心特性之一就是链式操作。通过返回jQuery对象,我们可以连续调用多个方法,如`$('div').addClass('highlight').fadeOut(500)`,这使得代码更加简洁。 ### 3. DOM操作(DOM Manipulation) - `$(selector...
3. **Deferred对象**:这是jQuery 1.5引入的一个重要特性,用于处理异步操作。 Deferred对象允许开发者创建链式操作,并提供了一种统一的方式来管理回调函数和异步状态。 4. **改进的选择器引擎**:jQuery 1.5在...
jQuery中的Deferred对象是1.5版本引入的重要特性,它主要用于处理JavaScript中的异步编程模式。在传统编程中,异步操作的处理较为复杂,常常需要嵌套回调函数,使得代码难以阅读和维护。而Deferred对象提供了一种更...
- **Deferred对象**:jQuery 1.5引入了 Deferred 对象,用于异步编程,特别是在处理多个Ajax请求时,可以实现链式操作并控制它们的执行顺序。 - **优化的动画性能**:此版本对动画性能进行了优化,使得复杂的动画...
jQuery Version 1.5 API 中文版 IE用户无法在线查看本文档,请下载jQuery API Version1.5 中文版AIR客户端查看,或者使用chrome,safari,firefox,opera等浏览器查看!!! jQuery 1.5 API Cheat Sheet来源 ...
《jQuery 1.5与JavaScript深度解析》 jQuery 1.5版本是jQuery库发展史上的一个重要里程碑,它带来了许多优化和新特性,为开发者提供了更高效、更强大的JavaScript编程工具。在这个版本中,jQuery的核心功能得到了...
1. **Deferred对象与Promise接口**:jQuery 1.5引入了一个全新的 Deferred 对象,用于处理异步操作。 Deferred 提供了一种统一的方式来管理和链式异步操作,使得异步编程变得更加简单。Promise 接口允许我们注册多个...
《jQuery 1.5.js与开发文档详解》 在Web开发领域,jQuery是一个不可或缺的JavaScript库,它极大地简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。本篇文章将详细探讨jQuery 1.5.js的核心功能和开发文档API...
一、jQuery 1.5:Promise对象与 Deferred对象的引入 1.5版本引入了Promise和Deferred对象,这是异步编程的重要里程碑。Promise对象代表一个将来可能完成或失败的操作,而Deferred对象则用于管理这个过程。通过它们...
**jQuery1.5 API 中文版** jQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。jQuery1.5是该库的一个重要版本,发布于2011年,它引入了许多新功能和改进,...
您提供的内容与JQuery 1.5 API并无关联,而是关于恋爱战略的讨论。不过,如果您希望了解JQuery 1.5 API的相关知识点,我可以为您详细介绍: JQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM...
**jQuery 1.5简体中文API:学习与参考的宝贵资源** jQuery是JavaScript库的巨头,因其简洁的语法和强大的功能而广受欢迎。在Web开发领域,jQuery 1.5是一个重要的版本,它带来了许多增强和改进。本文将深入探讨...
- Deferred对象:1.5版本引入了Deferred对象,用于处理异步操作,如Ajax请求,使其更易于管理和链式调用。 - 兼容性提升:提升了与旧版IE浏览器的兼容性,同时优化了遍历和选择器的性能。 - AJAX增强:增加了全局...
jQuery 1.5版本中的亮点之一是改进了AJAX处理。通过增强$.ajax()函数,增加了更多的选项和回调,使得开发者能够更好地控制异步请求的流程。此外,Promise对象(表现为Deferred和Promise接口)的引入,使得链式调用变...
### jQuery之Deferred源码剖析知识点 #### 一、Deferred和Promise简介 jQuery的Deferred对象是jQuery在ES6的Promise概念出现之前的一种实现,它允许开发者将异步操作的结果通过链式调用的方式处理,避免了传统的...
- **Deferred 对象**:1.5版本引入了 Deferred 对象,用于处理异步操作,如Ajax请求。它通过链式调用`.done()`, `.fail()`, 和 `.always()` 等方法来管理回调函数,提高了代码的可读性和组织性。 - **改进的Ajax...