jquery Architecture design and implementation (2.1.4 Version)

Source: Internet
Author: User

There are too many jquery books on the market, good and bad, see so many always feel less what the "dry", I do not like to write the code, I want to learn the knowledge points, code skills, design ideas, code patterns can be very well expressed, so consider the way to analyze the source library of jquery to express , try to do the best content structure is still in constant revision, Welcome to give advice

Ps: wrote tens of thousands of words, because the project was too busy to pause under

Https://github.com/JsAaron/jQuery
the book revolves around several core points:
    1. Design concept
    2. Structural organization
    3. Abstract design
    4. Pattern Application
    5. Scene apply
Chapter One: Understanding the Architecture
1.1 我们真正会使用jQuery吗?1.2 库与框架的区别1.3 jQuery对象与dom对象的区别1.4 立即表达式与工厂模式1.5 无冲突处理机制
Chapter Ii: Core Mechanisms (completion)
2.1 理解上下文this    2.1.1 作为对象方法调用    2.1.2 作为函数调用    2.1.3 作为apply 或 call 调用    2.1.4 作为构造函数2.2 原型的优与弊2.3 架构设计    2.3.1 new操作符    2.3.2 实例的检测    2.3.3 构造器    2.3.4 此jQuery非彼jQuery    2.3.5 合并构造器2.4 实例对象    2.4.1 对象结构    2.4.2 生成原理2.5 实例与静态共享设计2.6 链式调用的原理2.7 回溯机制    2.7.1 上下文切换    2.7.2 回溯原理2.8 插件机制    2.8.1 枚举属性    2.8.2 extend机制2.9 迭代器模式    2.9.1 简单的迭代器    2.9.2 jQuery中的each迭代器    2.9.4 迭代器的扩展      2.9.3 迭代器模式总结2.10 本章总结
Chapter Iii: callback model (complete)
3.1 理解回调函数3.2 同步与异步中的回调函数3.3 回调函数与设计模式3.6 观察者模式    3.6.1 模式定义    3.6.2 适用场合    3.6.3 简单实现    3.6.4 实现原理    3.6.5 模式利与弊    3.6.6 模式的运用3.7 $.Callbacks    3.7.1 简单使用    3.7.2 结构设计    3.7.3 执行流程    3.7.4 组合模式
fourth: Asynchronous Programming (complete)
4.1 异步编程原理4.2 定时器的困惑4.3 定时器的工作原理4.4 setTimeout和setInterval的本质区别4.5 万能的setTimeout(0)    4.5.1 setTimeout(0)的作用    4.5.2 setTimeout(0)真正意义    4.5.3 setTimeout(0)的替代品4.6 浏览器的线程机制4.6 异步回调与Promise    4.7.1 嵌套异步    4.7.2 Promise异步4.8 Promise 与Promise/A+规范    4.8.1 Promise的世界    4.8.2 生活中的Promise    4.8.3 理解Promise的重点    4.8.4 有限状态机    4.8.5 ECMAScript 6中的Promise    4.8.6 PromiseA与Promise A+的主要区别    4.8.7 jQuery中Promise?4.9 Promise的设计路程    4.9.1 创建Promise    4.9.2 引入状态机    4.9.3 Promise职责分离    4.9.4 串联Promise    4.9.5 错误处理    4.9.6 融入异步4.10 jQuery的Deferred    4.10.1 Deferred设计的初衷    4.10.2 Deferred与Promise    4.10.3 Deferred.promise    4.10.4 Deferred的接口设计    4.10.5 Deferred的执行原理    4.10.6 Deferred的管道设计    4.10.7 Deferred的并归设计
Fifth Chapter: data caching 
4.1 缓存介绍4.2 一个简单数据缓存实现4.3 jQuery引入缓存中解决的问题4.4 底层Data类的实现    4.4.1 set处理    4.4.2 get处理    4.4.3 access处理    4.4.4 remove处理    4.4.5 hasData处理4.5 高层API的封装    4.5.1 接口的设定     4.5.2 HTML5的data-*属性    4.5.3 缓存检测4.6 jQuery.data与data的区别4.7 jQuery.data是实现4.8 .data的实现4.9 缓存的清理    4.9.1 removeData    4.9.2 jQuery.removeData    4.9.3 jQuery.cleanData
Sixth Chapter: Queue Operations
6.1 数据结构中的定义6.2 Queue队列6.3 为什么要引入队列6.4 $.queue6.5 $.dequeue6.6 promise接口的处理6.7 jQuery动画队列的依赖
Seventh Chapter: module loading
7.1 AMD与CMD规范7.2 设计剖析    7.2.1 关于require    7.2.2 关于define7.3 构建轻巧的aaronRequire管理器    7.3.1依赖管理的设计    7.3.2模块化管理的设计    7.3.3预加载与懒加载的共存
Eighth chapter: selector engine 
8.1 CSS选择器8.1.1 认识CSS选择器8.1.2 选择器的种类8.2 浏览器提供的接口与兼容问题    8.2.1 浏览器提供的六大接口    8.2.2 querySelectorAll的兼容及处理    8.2.3 getElementById的兼容及处理    8.2.4 getElementsByTagName的兼容处理    8.2.5 getElementsByClassName处理    8.2.6 getAttribute和getAttributeNode的处理8.3 正则表达式    8.4.1 理解正则    8.4.2 选择分组与引用    8.4.3 分析jQuery中的正则8.4 jQuery选择器的概况8.5 选择器引擎设计的思路与知识点     8.5.1 浏览器的从右向左的解析8.5.2 设计的思路8.5.3 需要处理的一些问题8.5.4 抽象出的概念8.6 详解sizzle引擎    8.6.1 词法解析器    8.6.2 解析原理    8.6.3 编译函数    8.6.4 超级匹配    8.6.6 基础选择器    8.6.7 层级选择器    8.6.8 属性选择器    8.6.9 伪类选择器    8.6.10 过滤器    8.6.11 表单选择器8.7 jQuery选择器的优化
nineth chapter: node Traversal
9.1 节点的关系处理9.2 设计思路9.3 整体结构9.4 抽象的底层处理     9.4.1 jQuery.dir     9.4.2 jQuery.sibling9.5 .find与.children9.6 .prev,.prevAll,prveUntil9.7 .next与.nextAll9.8 .cloest与parents
Tenth chapter: document processing
10.1 节点层次关系的理解10.2 DOM的CRUD操作技术     10.2.1 创建节点     10.2.2 插入节点     10.2.3 删除节点     10.2.4 替换节点10.3 忽略的细节     10.3.1 Document.body与DocumentElement区别     10.3.2 contentWindow、contentDocument、document区别     10.3.3 DocumentFragment存在的问题     10.3.4 iframe存在的问题     10.3.5 HTML5引入的高级API10.4 jQuery文档整体思路     10.4.1 参数传递的抽象     10.4.2 文档碎片的优化     10.4.3 注入script 处理10.5 jQuery 内部插入     10.5.1 .append与appendTo10.5.2 .prepend与.prependTo     10.5.3 .html与.text10.6 jQuery 外部插入     10.6.1 .before与insertBefore     10.6.2 .after与insertAfter10.7 jQuery 包裹     10.7.1 .warp     10.7.2 .warpAll     10.7.3 .warpInner10.8 jQuery 移除     10.8.1 .empty     10.8.2 .unwrap     10.8.3 .detach与.remove10.9 jQuery 拷贝     10.9.1 .clone10.10 jQuery 替换      10.10.1 .replaceAll和.replaceWith
11th chapter: style operation
11.1 盒子模型     11.1 padding     11.2 border     11.3 margin11.2 样式操作的规则     11.2.1 样式访问接口     11.2.2 不同浏览下的兼容性11.3 样式表操作11.4 元素的位置11.5 元素的尺寸11.6 jQuery样式解析流程11.7 jQuery的样式钩子11.8 jQuery的css接口     11.8.1 addClass与hasClass     11.8.2 removeClass与.toggleClass11.9 jQuery的尺寸操作     11.9.1 .width与.hieght     11.9.2 .innerWidth与.innerHieght     11.9.3 .outWidth与.outHieght11.10 jQuery的位置操作      11.10.1 .offset与.offsetParent      11.10.2 .position      11.10.3 .scrollLeft与.scrollTop
12th chapter: Attribute Manipulation 
12.1 属性与特性12.2 浏览器的API12.3 关于jQuery属性钩子12.4 属性钩子处理的兼容问题     12.4.1 保留值属性名字修正     12.4.2 与表单操作相关12.5 .attr与.prop12.6 .removeAttr与removeProp12.7 .val
the 13th chapter: The event System
13.1 The asynchronous 13.3 event compatibility problem with the capture 13.2 event and the circular reference caused by handling the 13.4 event object 13.5 Event 13.6 jquery event architecture 13.7 bind/live/delegate/on differences in jquery 13.8 jqu Ery Event Object 13.8.1 jquery.event Unified Event Object Widget 13.8.2 JQuery.event.fix Remediation Event Properties 13.9 jQuery binding design 13.9.1 bottom on design 13.9.2 jqu ery.event.add13.10 jquery event Removal 13.10.1. off 13.10.2 jquery.event.remove13.11 jquery commissioned design 13.11.1 involved in handling 1 3.11.2 introduction of processing scheme 13.11.3 adapter application 13.12 JQuery Custom Event Design 13.12.1 Understanding the concept of custom events 13.12.2 Jquery.trigger and Document.dispa Tchevent distinguish 13.12.3 jquery custom event principle 13.13 trigger several common uses 13.13.1 common simulation 13.13.2 trigger custom Events 13.13.3 Pass data 1       3.13.4 perform the default action 13.14.5 trigger need to handle the problem 13.14 trigger source interpretation 13.14.1 namespace filtering 13.14.2 Simulation event object 13.14.3 returned event data collection  13.14.4 jQuery.event.special 13.14.5 Simulation event bubbling 13.14.6 handling event 13.15 JQuery Simulation event 13.15.1 Focus Event 13.15.2      Event compatibility Support 13.15.3 JQuery.event.special method 13.15.4 jquery.event event mechanism focusin/focusout event 13.15.5 why use capture? 13.15.6 jQuery.event.siMulate method 
14th chapter: Ajax Interaction
14.1 关于XMLHttpRequest对象     14.1.1 关于post     14.1.2 关于get14.2 http协议14.3 数据处理14.4 实现一个完整的Ajax14.5 jQuery.ajax做了那些事?14.6 jQuery针对ajax的全新设计     14.6.1 整体的结构设计     14.6.2 引入的机制与实现     14.6.3 抽象的接口14.7 jQuery.ajax三种事件消息机制     14.7.1 ajax的参数回调     14.7.2基于deferred方式的done回调     14.7.3全局的的自定义事件的回调14.8 Deferred与Callback的改造     14.8.1 Callback     14.8.2 Ajax deferred实现14.9 前置过滤器     14.9.1 引入的作用     14.9.2 针对script的预处理     14.9.3 针对json,jsonp的预处理14.10 请求分发器      14.10.1 XHR对象的封装14.11 jsonp的跨域14.12 jsonp的原理与实现14.13 类型转化器14.14 小结
the 15th chapter: Animation engine
15.1 常见动画手段     15.1.1 定时器动画     15.1.2 CSS3动画     15.1.3 transition动画15.2 动画原理15.3 关于缓动公式15.4 实现一个简单的动画设计15.5 jQuery动画的引擎15.6 jQuery动画队列15.7 基于队列动画调用15.8 动画的底层实现类     15.8.1 基于deferred的设计     15.8.2 动画的开始     15.8.3 动画的停止15.9 jQuery基本动画效果       15.9.1 show     15.9.2 hide     15.9.3 toogle15.10 jQuery动画的渐变      15.10.1 .fadeIn和fadeOut      15.10.2 .fadeTo和fadeToggle15.11 jQuery动画的滑动      15.11.1 .slideDown      15.11.2 .slideToggle      15.11.3 .slideUp

jquery Architecture design and implementation (2.1.4 Version)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.