jQuery源码解析----回调函数"memory"场景的实现
来源:互联网 发布:网络服务器连接失败 编辑:程序博客网 时间:2024/05/16 05:02
//memory的设计
memory:包吃以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调。
回调函数是从异步队列Deferred分离出来的,所以很多的接口设计是为了契合Deferred接口,memory用的很多,这个缓存的设计这里提及一下主要是用来实现Deferred的异步收集与pipe管道风格的数据传递的,具体在Deferred有详解,这里大概了解一下作用范围。
memory设计需要解决的问题是:
(1)如何保持上一个参数
(2)add后如何执行
私有变量memory缓存这上一个参数的属性,我们靠firingStart用来定位通过add增加的回到数据的索引。在遍历的时候
直接通过firingStart的起使索引定位,然后传递memory的参数,而且实现这种"保持以前的值"的设计。
memory:包吃以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调。
回调函数是从异步队列Deferred分离出来的,所以很多的接口设计是为了契合Deferred接口,memory用的很多,这个缓存的设计这里提及一下主要是用来实现Deferred的异步收集与pipe管道风格的数据传递的,具体在Deferred有详解,这里大概了解一下作用范围。
memory设计需要解决的问题是:
(1)如何保持上一个参数
(2)add后如何执行
代码模拟实现:
function Callbacks(options){var list = [];var self;var firingStart;var memory;function _fire(data){memory = options ==='memory'&&data;firingIndex = firingStart||0;firingStart = 0;firingLength = list.length;for(;list&&firingIndex<firingLength;firingIndex++){list[firingIndex](data);}}self = {add:function(fn){var start = list.length;list.push(fn);if(memory){firingStart = start;_fire(memory);}},fire:function(args){}}return self;}
私有变量memory缓存这上一个参数的属性,我们靠firingStart用来定位通过add增加的回到数据的索引。在遍历的时候
直接通过firingStart的起使索引定位,然后传递memory的参数,而且实现这种"保持以前的值"的设计。
0 0
- jQuery源码解析----回调函数"memory"场景的实现
- Jquery实现自己的回调函数
- jQuery源码分析17--回调函数
- jQuery源码解析(依赖与架构模块)笔记三------回调函数
- skynet源码分析【skynet服务回调函数的实现】
- jquery回调函数
- 回调函数解析
- 解析--回调函数
- 回调函数解析
- 回调函数解析
- 回调函数解析
- 回调函数解析
- 什么是回调函数?回调函数的简单实现。
- 简单的jQuery回调函数
- jquery toggle 回调函数的使用
- ViewPager SimpleOnPageChangeListener中回调函数的调用场景
- 回调函数应用场景---android的服务 模版
- 回调函数实现
- GCD使用经验与技巧浅谈
- Accp 7.0 第15章上机练习1
- 微信打开网址添加在浏览器中打开提示
- 栅格数据数据入库管理
- mysql备份与恢复--mysqldump
- jQuery源码解析----回调函数"memory"场景的实现
- Nginx配置文件解析
- 前端面试题汇总3
- firebug快捷键
- xUtils源码阅读(7)-GitDrawable
- 痛定思痛,打好CSS基本功
- iOS开发的一些奇巧淫技
- suricata 3.1 源码分析17 (流管理2)
- 提高PHP执行效率的技巧