ruantao1989


  • Home

  • Archives

  • Categories

  • About

jQuery源码阅读13-1:事件绑定流程

Posted on 2014-05-31   |   In jQuery源码阅读   |  

Event这个摸块大概用了1千行, 占源代码的1/9, 我知道代码量挺大 但是没想到就看一个绑定过程(边跟边记)就得花五六个小时…挺好的周末夜晚就这样到凌晨1点了…
这篇按时间顺序 说说jQ事件绑定还有event对象fix的流程

事件这块结构大概是这样:
1.外层: fn里有on,bind,live这些常用的接口
2.中间层: 上述接口会调用jQuery.event对象中的基础方法, 如add(). jQuery.event对象只是真正的执行者, 主要负责做(1)data缓存, (2)做兼容, (3)最终生成jQuery.Event实例 (4)dispatch执行
3.内层: jQuery.Event实例包装原生事件对象, 记录扩展的data, 记录执行函数结果等

Read more »

jQuery源码阅读12-1:回调队列$.Callback对象

Posted on 2014-05-24   |   In jQuery源码阅读   |  

Deferred这个东西异常nb, 应该是jQuery中异步处理的核心
因为没有实现这种东西的经验, 所以不太好理解, 好多代码看不出目的性
有点儿操作系统里任务控制的感觉, 还得弄个状态机 三四种运行状态循环 管理运行状态什么的…
“回调队列”这个专题被迫拆成两部分吧, 先读简单的Callbacks队列

Read more »

jQuery源码阅读12-2:回调队列$.Deferred对象

Posted on 2014-05-24   |   In jQuery源码阅读   |  

Deferred这个东西我没看懂… 只看出他能干嘛了 连他实现的思路都没研究清楚…
后边很多模块的核心都是Deferred(比如Ajax)本应好好研究研究的, 不过时间有限, 先把读代码笔记发出来吧 回头再迭代

deferred对象有三种执行状态:未完成,已完成和已失败.
如果执行状态是”已完成”(resolved),deferred对象立刻调用done()方法指定的回调函数;如果执行状态是”已失败”,调用fail()方法指定的回调函数;如果执行状态是”未完成”,则继续等待,或者调用progress()方法指定的回调函数

Read more »

jQuery源码阅读11:数据缓存data()

Posted on 2014-05-24   |   In jQuery源码阅读   |  

读event之前, 核心方法里还有data和queue没读,先把基础方法里的障碍扫清吧

1:data可以把目标数据绑定在dom元素上,或者js对象里
(1).对于dom元素: 程序生成一个uuid关联数据和缓存, 把id写进对象, 把要缓存的数据缓存在jQuery.cache对象里
(2).对于js对象:直接在此对象中增加一个名为jQuery/\d+/的对象, 把要缓存的数据放入此对象
2:缓存机制自身也用data缓存数据,提高效率

这点儿代码看了好几个小时才看明白, 读懂之后发现其实缓存机制道理不复杂 就是流程太多太绕
总感觉对js对象缓存的处理是后加进来的, 做了一大堆追加判断 原有逻辑一下就复杂了
要是我写 有可能写两套逻辑单独处理, 但是那样维护又比较麻烦

所以有感而发:再nb的人写傻大全的代码也避免不了臃肿…

Read more »

jQuery源码阅读10:浏览器检测support()

Posted on 2014-05-22   |   In jQuery源码阅读   |  

suppor()t用html和css操作来验证浏览器特性,而不是直接查userAgent
里边提到的好些问题我都不知道, 这篇文章也就是个摘抄, 最多算个翻译…
粘一遍注释学习一下吧

Read more »

jQuery源码阅读9:css操作

Posted on 2014-05-20   |   In jQuery源码阅读   |  

css操作是一大块, 核心操作里有关兼容性的问题太多太杂
先记下来以后一个一个看吧

Read more »

jQuery源码阅读8-2:属性操作val(),removeAttr()

Posted on 2014-05-20   |   In jQuery源码阅读   |  

属性操作是比较独立的一块,
这次说下prop相关的, 和属性必须用的access 下次说更麻烦一点的attr,val 还有css相关的

以prop的一次操作为例, 调用顺序是: fn.prop -> access -> jQuery.prop

Read more »

jQuery源码阅读8-1:属性操作prop()和access()

Posted on 2014-05-19   |   In jQuery源码阅读   |  

属性操作是比较独立的一块,
这次说下prop相关的, 和属性必须用的access 下次说更麻烦一点的attr,val 还有css相关的

以prop的一次操作为例, 调用顺序是: fn.prop -> access -> jQuery.prop

Read more »

jQuery源码阅读7:作用域代理proxy()

Posted on 2014-05-18   |   In jQuery源码阅读   |  

jQuery里的proxy代理是: 函数在指定作用域中的执行的闭包
要是想限定函数的执行上下文, proxy就特别有用了

Read more »

正则入门

Posted on 2014-05-17   |   In js入门   |  

就是按照教程学一下基本概念, 自己的理解很少 ,
看这架势正则一篇文章不够 还得再弄点儿文章学习学习稍微高级一点儿的…

Read more »
1…678
ruantao1989

ruantao1989

思行合一

78 posts
10 categories
RSS
Links
  • 旧博客
  • Lofter
© 2016 ruantao1989
Powered by Hexo
Theme - NexT.Pisces