编辑推荐
引导读者了解近10年来大师们打造的优良框架以及其中令人称道的奇思妙想。
更深入、更彻底地认识JavaScript,领略jQuery等库的架构之美和设计之美。
帮助开发者高屋建瓴地打造适合自己的前端框架。
内容简介
《JavaScript框架设计》是一本全面讲解JavaScript框架设计的图书,详细地讲解了设计框架需要具备的知识,主要包括的内容为:框架与库、JavaScript框架分类、JavaScript框架的主要功能、种子模块、模块加载系统、语言模块、浏览器嗅探与特征侦测、样式的支持侦测、类工厂、JavaScript对类的支撑、选择器引擎、浏览器内置的寻找元素的方法、节点模块、一些有趣的元素节点、数据缓存系统、样式模块、个别样式的特殊处理、属性模块、jQuery的属性系统、事件系统、异步处理、JavaScript异步处理的前景、数据交互模块、一个完整的Ajax实现、动画引擎、API的设计、插件化、当前主流MVVM框架介绍、监控数组与子模板等。
《JavaScript框架设计》适合前端设计人员、JavaScript开发者、移动UI设计者、程序员和项目经理阅读,也可作为大中专院校相关专业的师生学习用书和培训学校的教材。作者简介
钟钦成,网名司徒正美,著名的JavaScript专家,立志做考古学家的日语系工程师,穿梭于二次元与二进制间的“魔法师”,做过陶艺,写过小说,涉猎Java、Ruby、JavaScript,3年成就此书!
目录
第1章种子模块
1.1命名空间
1.2对象扩展
1.3数组化
1.4类型的判定
1.5主流框架引入的机制——domReady
1.6无冲突处理
第2章模块加载系统
2.1AMD规范
2.2加载器所在路径的探知
2.3require方法
2.4define方法
第3章语言模块
3.1字符串的扩展与修复
3.2数组的扩展与修复
3.3数值的扩展与修复
3.4函数的扩展与修复
3.5日期的扩展与修复
第4章浏览器嗅探与特征侦测
4.1判定浏览器
4.2事件的支持侦测
4.3样式的支持侦测
4.4jQuery一些常用特征的含义
第5章类工厂
5.1JavaScript对类的支撑
5.2各种类工厂的实现
5.2.1相当精巧的库——P.js
5.2.2JS.Class
5.2.3simple-inheritance
5.2.4体现JavaScript灵活性的库——def.js
5.3es5属性描述符对OO库的冲击
第6章选择器引擎
6.1浏览器内置的寻找元素的方法
6.2getElementsBySelector
6.3选择器引擎涉及的知识点
6.4选择器引擎涉及的通用函数
6.4.1isXML
6.4.2contains
6.4.3节点排序与去重
6.4.4切割器
6.4.5属性选择器对于空白字符的匹配策略
6.4.6子元素过滤伪类的分解与匹配
6.5Sizzle引擎
第7章节点模块
7.1节点的创建
7.2节点的插入
7.3节点的复制
7.4节点的移除
7.5innerHTML、innerText与outerHTML的处理
7.6一些奇葩的元素节点
7.6.1iframe元素
7.6.2object元素
7.6.3video标签
第8章数据缓存系统
8.1jQuery的第1代缓存系统
8.2jQuery的第2代缓存系统
8.3massFramework的第1代数据缓存系统
8.4massFramework的第2代数据缓存系统
8.5massFramework的第3代数据缓
存系统
8.6总结
第9章样式模块
9.1主体结构
9.2样式名的修正
9.3个别样式的特殊处理
9.3.1opacity
9.3.2user-select
9.3.3background-position
9.3.4z-index
9.3.5盒子模型
9.3.6元素的尺寸
9.3.7元素的显隐
9.3.8元素的坐标
9.4元素的滚动条的坐标
第10章属性模块
10.1如何区分固有属性与自定义属性
10.2如何判定浏览器是否区分固有属性与自定义属性
10.3IE的属性系统的三次演变
10.4className的操作
10.5Prototype.js的属性系统
10.6jQuery的属性系统
10.7massFramework的属性系统
10.8value的操作
第11章事件系统
11.1onXXX绑定方式的缺陷
11.2attachEvent的缺陷
11.3addEventListener的缺陷
11.4DeanEdward的addEvent.js源码分析
11.5jquery1.8.2的事件模块概览
11.6jQuery.event.add的源码解读
11.7jQuery.event.remove的源码解读
11.8jQuery.event.dispatch的源码解读
11.9jQuery.event.trigger的源码解读
11.10jQuery对事件对象的修复
11.11滚轮事件的修复
11.12mouseenter与mouseleave事件的修复
11.13focusin与focusout事件的修复
11.14旧版本IE下submit的事件代理的实现
11.15oninput事件的兼容性处理
第12章异步处理
12.1setTimeout与setInterval
12.2MochikitDeferred
12.3JSDeferred
12.3.1得到一个Deferred实例
12.3.2Deferred链的实现
12.3.3JSDeferred的并归结果
12.3.4JSDeferred的性能提速
12.4jQueryDeferred
12.5Promise/A与mmDeferred
12.6JavaScript异步处理的前景
第13章数据交互模块
13.1Ajax概览
13.2优雅地取得XMLHttpRequest对象
13.3XMLHttpRequest对象的事件绑定与状态维护
13.4发送请求与数据
13.5接收数据
13.6上传文件
13.7一个完整的Ajax实现
第14章动画引擎
14.1动画的原理
14.2缓动公式
14.3API的设计
14.4massFramework基于JavaScript的动画引擎
14.5requestAnimationFrame
14.6CSS3transition
14.7CSS3animation
14.8massFramework基于CSS的动画引擎
第15章插件化
15.1jQuery的插件的一般写法
15.2jQueryUI对内部类的操作
15.3jQueryeasyUI的智能加载与个别化制定
15.4更直接地操作UI实例
第16章MVVM
16.1当前主流MVVM框架介绍
16.2属性变化的监听
16.3ViewModel
16.4绑定
16.5监控数组与子模板