- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jquery源码浅析汇编
Jquery源码浅析
杨经纬
前言
总体架构
工具函数
Sizzle选择器
前言
轻量级Javascript框架
兼容css3及各种浏览器
方便处理html、events、动画效果、ajax交互
文档说明全,成熟插件多
Write Less,Do More.
前言
总体架构
工具函数
Sizzle选择器
整体架构——自调用匿名函数
(function( window, undefined ) {
// jquery code
})(window);
1.为什么要用自调用匿名函数?
2.为什么要传入window?
3.为什么要增加undefined参数?
整体架构——实现功能
(function( window, undefined ) {
// 构造jQuery对象
var jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context, rootjQuery );
}//隔离作用域并能使用jQuery原型对象的作用域
原型传递解决问题,把jQuery的原型传递给jQtotype
// 工具函数 Utilities
// 异步队列 Deferred
// 浏览器测试 Support
// 数据缓存 Data
// 队列 queue
// 属性操作 Attribute
// 事件处理 Event
// 选择器 Sizzle
// DOM遍历
// DOM操作
// CSS操作
// 异步请求 Ajax
// 动画 FX
// 坐标和大小
window.jQuery = window.$ = jQuery;
})(window);
整体架构——链式调用
aQuery().init().name(); 如何实现?
aQuery().init().name();
aQtotype = {
init: function() {
return this;
},
name: function() {
return this
})
整体架构——插件接口
jQuery.fn.extend()
jQuery.extend = jQuery.fn.extend = function() { …}
jQuery.extend 对jQuery本身的属性和方法进行了扩展
jQuery.fn.extend 对jQuery.fn的属性和方法进行了扩展
总体架构
工具函数
事件处理
Sizzle选择器
工具函数
noConflict
noConflict: function( deep ) {
// 交出$的控制权
if ( window.$ === jQuery ) {
window.$ = _$;
}
// 交出jQuery的控制权
if ( deep window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
return jQuery;
},
trim: trim ?
function( text ) {
return text == null ?
:
trim.call( text );
} :
// Otherwise use our own trimming functionality
function( text ) {
return text == null ?
:
text.toString().replace( trimLeft, ).replace( trimRight, );
},
前言
总体架构
工具函数
Sizzle选择器
jquery从1.3开始,使用了新的选择器–sizzle。效率业界第一。
从右至左
div div p em
Tokenize处理器
Sizzle引擎解析流程
通过Expr.find[ type ]我们找出选择器最右边的最终seed种子合集
通过Spile函数编译器,我们把tokenize词法元素编译成闭包函数
超级匹配superMatcher,用最佳的方式从seed种子集合筛选出需要的数据
选择器效率比较
id:$(‘#aaron
您可能关注的文档
- japan日本.pptx
- 中国知网检索教学.ppt
- 中国的河流与湖泊_ppt.ppt
- Javach6汇编.ppt
- 中国的河流和湖泊WD剖析.ppt
- IT产品维修实训项目3理解IT产品营销服务标准及政策法规汇编.ppt
- 中国石油大学(华东)国际贸易基础第一讲国际货物贸易概述剖析.ppt
- javaEE汇编.doc
- JavaEE核心技术(第6章业务层)汇编.ppt
- javascript课堂笔记.doc
- 第十八章平行四边形单元复习专题四边形创新作图--2024-2025学年人教版初中数学八年级下册.pptx
- 北师大版(2019)高中数学必修1第8章2.数学建模的主要步骤.pptx
- 统编版八年级语文下册第六单元虽有嘉肴.pptx
- 统编版初中语文七年级上册第3课雨的四季.pptx
- 人教版初中英语2024学年江西省中考专题复习阅读理解技巧指导.pptx
- 人教版(2019)高中英语必修3 Unit 4 Space Exploration Reading and Thinking.pptx
- 5.3 实际问题与一元一次方程(销售问题)-2024-2025学年人教版初中数学七年级上册.pptx
- 统编版小学语文五年级下册快乐读书吧《红楼梦》名著品读.pptx
- 人教版初中英语九年级全册 unit6 When was it invented Section B 2a-2e.pptx
- 第十七章专题复习活用勾股定理,巧解翻折问题-2024-2025学年人教版初中数学八年级下册.pptx
文档评论(0)