1. 云栖社区>
  2. 技术文集>
  3. 列表>
  4. 正文

jQuery回调对象

作者:用户 来源:互联网 时间:2016-08-03 19:51:57

jquery对象callbackdeferredcallbacksonceajax重复调用jQuery1.6

jQuery回调对象 - 摘要: 本文讲的是jQuery回调对象, jQuery向开发者提供了外部接口调用,但是$.Callbacks()模块的开发目的是为了给内部$.ajax() 和 $.Deferred()模块提供统


jQuery向开发者提供了外部接口调用,但是$.Callbacks()模块的开发目的是为了给内部$.ajax() 和 $.Deferred()模块提供统一的基本功能组件。它可以用来作为类似基础定义的新组件的功能。

jQuery.Callbacks是jquery在1.7版本之后加入的,是从1.6版中的_Deferred对象中抽离的,主要用来进行函数队列的add、remove、fire、lock等操作,并提供once、memory、unique、stopOnFalse四个option进行一些特殊的控制。

这个函数常见的应用场景是事件触发机制,也就是设计模式中的观察者模式的发布、订阅机制,目前Callbacks对象用于queue、ajax、Deferred对象中。
 

Ajax模块

  1. ajax: function(url, options) { 
  2.   //省略代码 
  3.   deferred = jQuery.Deferred(), 
  4.   completeDeferred = jQuery.Callbacks("once memory") 
  5.     .............. 

不难发现jQuery.Callbacks还提供“once memory”等参数用来处理:

   ☑  once: 确保这个回调列表只执行( .fire() )一次(像一个递延 Deferred)。

   ☑  memory: 保持以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调 (像一个递延 Deferred)。

   ☑  unique: 确保一次只能添加一个回调(所以在列表中没有重复的回调)。

   ☑  stopOnFalse: 当一个回调返回false 时中断调用。

  1. var callbacks = $.Callbacks('once'); 
  2.  
  3. callbacks.add(function() { 
  4.   alert('a'); 
  5. }) 
  6.  
  7. callbacks.add(function() { 
  8.   alert('b'); 
  9. }) 
  10.  
  11. callbacks.fire(); //输出结果: 'a' 'b' 
  12. callbacks.fire(); //未执行 

once的作用是使callback队列只执行一次。
 



以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有 的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery , 对象 , callback , deferred , callbacks , once , ajax重复调用 jQuery1.6 jquery animate 回调、jquery submit 回调、jquery 回调函数、jquery ajax 回调函数、jquery 回调,以便于您获取更多的相关知识。

jquery ajax-jqery-ajaxt 回调函数 ,List里面有对象,对象的time类型是(Timestamp)

问题描述 jqery-ajaxt 回调函数 ,List里面有对象,对象的time类型是(Timestamp) $.ajax({ type:"post", dateType:"json", url:projectPath+"/sharepush/selectSharePushByTypeStatus.do", data:{ ...

jQuery的deferred对象使用详解_jquery

这个功能很重要,未来将成为jQuery的核心方法,它彻底改变了如何在jQuery中使用ajax。为了实现它,jQuery的全部ajax代码都被改写了。 但是,它比较抽象,初学者很难掌握,网上的教程也不多。所以,我把自己的学习笔记整理出来...

jQuery的deferred对象详解

jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。 每个版本都会引入一些新功能。今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象。 这个功能很重要,未来将成为jQuery的核心方法...

jQuery的deferred对象详解

一、什么是deferred对象。 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。 通常的...

jQuery回调、递延对象总结(上篇)—— jQuery.Callbacks

前言:作为参数传递给另一个函数执行的函数我们称为回调函数,那么该回调又是否是异步的呢,何谓异步,如:作为事件处理器,或作为参数传递给 (setTimeout,setInterval)这样的异步函数,或作为ajax发送请求,应用于请求各种...

前三篇
后三篇