• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > jQuery Deferred和Promise创建响应式应用程序详细介绍

jQuery Deferred和Promise创建响应式应用程序详细介绍

作者: 字体:[增加 减小] 来源:互联网 时间:2017-08-16

通过本文主要向大家介绍了Deferred,Promise,响应式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
这篇文章,我们一起探索一下 JavaScript 中的 Deferred 和 Promise 的概念,它们是 JavaScript 工具包(如Dojo和MochiKit)中非常重要的一个功能,最近也首次亮相于 流行的 JavaScript 库 jQuery(已经是1.5版本的事情了)。 Deferred 提供了一个抽象的非阻塞的解决方案(如 Ajax 请求的响应),它创建一个 “promise” 对象,其目的是在未来某个时间点返回一个响应。如果您之前没有接触过 “promise”,我们将会在下面做详细介绍。

抽象来说,deferreds 可以理解为表示需要长时间才能完成的耗时操作的一种方式,相比于阻塞式函数它们是异步的,而不是阻塞应用程序等待其完成然后返回结果。deferred对 象会立即返回,然后你可以把回调函数绑定到deferred对象上,它们会在异步处理完成后被调用。

Promise
  你可能已经阅读过一些关于promise和deferreds实现细节的资料。在本章节中,我们大致介绍下promise如何工作,这些在几乎所有的支持deferreds的javascript框架中都是适用的。

  一般情况下,promise作为一个模型,提供了一个在软件工程中描述延时(或将来)概念的解决方案。它背后的思想我们已经介绍过:不是执行一个方法然后阻塞应用程序等待结果返回,而是返回一个promise对象来满足未来值。

  举一个例子会有助于理解,假设你正在建设一个web应用程序, 它很大程度上依赖第三方api的数据。那么就会面临一个共同的问题:我们无法获悉一个API响应的延迟时间,应用程序的其他部分可能会被阻塞,直到它返回 结果。Deferreds 对这个问题提供了一个更好的解决方案,它是非阻塞的,并且与代码完全解耦 。

  Promise/A提议'定义了一个'then‘方法来注册回调,当处理函数返回结果时回调会执行。它返回一个promise的伪代码看起来是这样的:
jQuery.Deferred() 创建一个新的Deferred对象的构造函数,可以带一个可选的函数参数,它会在构造完成后被调用。
jQuery.when() 通过该方式来执行基于一个或多个表示异步任务的对象上的回调函数
jQuery.ajax() 执行异步Ajax请求,返回实现了promise接口的jqXHR对象
deferred.then(resolveCallback,rejectCallback) 添加处理程序被调用时,递延对象得到解决或者拒绝的回调。
deferred.done()

当延迟成功时调用一个函数或者数组函数.

deferred.fail()

当延迟失败时调用一个函数或者数组函数.。

deferred.resolve(ARG1,ARG2,...) 调用Deferred对象注册的‘done'回调函数并传递参数
deferred.resolveWith(context,args) 调用Deferred对象注册的‘done'回调函数并传递参数和设置回调上下文
deferred.isResolved 确定一个Deferred对象是否已经解决。
deferred.reject(arg1,arg2,...) 调用Deferred对象注册的‘fail'回调函数并传递参数
deferred.rejectWith(context,args) 调用Deferred对象注册的‘fail'回调函数并传递参数和设置回调上下文
deferred.promise() 返回promise对象,这是一个伪造的deferred对象:它基于deferred并且不能改变状态所以可以被安全的传递

jQuery延时实现的核心是jQuery.Deferred:一个可以链式调用的构造函数。...... 需要注意的是任何deferred对象的默认状态是unresolved, 回调会通过 .then() 或 .fail()方法添加到队列,并在稍后的过程中被执行。

  下面这个$.when() 接受多个参数的例子
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • jQuery中的deferred对象和extend方法详解
  • jQuery中的deferred使用方法
  • 谈谈jQuery之Deferred源码剖析
  • jQuery的deferred对象使用详解
  • jQuery使用deferreds串行多个ajax请求
  • 详解jQuery中的deferred对象的使用(一)
  • jQuery中借助deferred来请求及判断AJAX加载的实例讲解
  • jQuery通过deferred对象管理ajax异步
  • 深入解析jQuery中Deferred的deferred.promise()方法
  • jQuery的promise与deferred对象在异步回调中的作用

相关文章

  • 2017-08-16jQuery的each终止或跳过示例代码
  • 2017-08-16jQuery获取元素父节点的方法
  • 2017-08-16jQuery实现定时读取分析xml文件的方法
  • 2017-08-16基于jquery实现的服务器验证控件的启用和禁用代码
  • 2017-08-16jQuery实现图片与文字描述左右滑动自动切换的方法
  • 2017-08-16JQuery弹出层示例可自定义
  • 2017-08-16一款简单的jQuery图片标注效果附源码下载
  • 2017-08-16jQuery学习基础知识小结
  • 2017-08-16jquery操作checkbox示例分享
  • 2017-08-16表单类各种类型(文本框)失去焦点效果jquery代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • jQuery判断iframe中元素是否存在的方法
    • jQuery 设置 CSS 属性示例介绍
    • jQuery基于xml格式数据实现模糊查询及分页功能的方法
    • jQuery基础知识点总结(DOM操作)
    • JQuery中$之选择器用法介绍
    • jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
    • jQuery实现模仿微博下拉滚动条加载数据效果
    • jQuery学习2 选择器的使用说明
    • JQuery学习总结【一】
    • jquery文字上下滚动的实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有