`
calatustela
  • 浏览: 143660 次
  • 性别: Icon_minigender_1
  • 来自: 江苏●南通
社区版块
存档分类
最新评论

逐行分析jQuery源码的奥秘之jQuery的整体框架

阅读更多

对jQuery的使用一直停留在按照API使用的阶段,一直很好奇jQuery这么一个复杂的框架是怎么一点一点写出来的。jQuery的源代码里道理有什么值得界面的理念和和思想。借着在网上看视频教程的机会,决心仔细研就一下jQuery的源代码,并做笔记记录。

 

视频课件地址:

http://study.163.com/course/courseMain.htm?courseId=465001#/courseMain

有兴趣的小伙伴可以一起学习讨论

 

这次拿来分析的jQuery源码版本为2.0.3

可以从jQuery网站上直接下载。链接为:http://www.jquery.com/jquery-2.0.3.js

整个源代码一共包含:8830行代码。

 

打开jquery里的源代码,我们发现整个jQuery源代码是包含在下面这个结构中:

(function(){

//jQuery的源代码

})();

 

这是Js中的匿名函数自执行的写法。这么写的好处:

1、放在这里的代码在浏览器加载完成之后会自动执行;

2、函数内部的变量和方法都是的作用域都在函数内部,不会和其他代码相互影响。

 

那么jQuery是如何在浏览器中给其他代码使用的?

秘密就在:8823行

// If there is a window object, that at least has a document property,
// define jQuery and $ identifiers
if ( typeof window === "object" && typeof window.document === "object" ) {
	window.jQuery = window.$ = jQuery;
}

 jquery源代码的主题框架如下:

(function(){

    (21  , 94) 定义了一些变量和函数 jQuery=function();
   
    (96  , 293) 给jQuery对象添加一些方法和属性;
   
    (285 , 347) extend:jQuery扩展方法;
   
    (349 , 817) jQuery.extend : 扩展一些工具方法;
   
    (877 , 2856 ) Sizzle : 复杂选择器的实现;
   
    (2880, 3042 ) Callbacks : 回调对象:函数的统一管理
   
    (3043, 3183 ) Deferred : 延迟对象:对异步的统一管理
   
    (3184, 3295) support : 浏览器功能检测,确定浏览器对某些功能是否支持
   
    (3380, 3652) data() : 数据缓存功能
   
    (3653, 3797) queue()/dequeue() : 队列管理
   
    (3803, 4299) attr() prop() val() addClass()等方法,对元素属性的操作
   
    (4300, 5138) on() trigger()等方法,事件相关的方法,事件管理
   
    (5140,6057) DOM操作:添加 删除 包装 获取 DOM筛选
   
    (6058, 6620) css() : 样式操作
   
    (6621, 7854) 提交的数据和Ajax()操作:ajax() load() getJson()
   
    (7855, 8584) animite() : 运动的方法
   
    (8585, 8792) offset() :位置与尺寸的方法
   
    (8804, 8821) JQuery对模块化的支持
   
    (8826) window.jQuery = window.$ = jQuery;//对外提供的接口
   
})();

 

分享到:
评论

相关推荐

    JQuery源码的奥秘逐行分析视频教程

    ### JQuery源码的奥秘逐行分析视频教程 #### JQuery简介 JQuery 是一款轻量级的 JavaScript 库,它极大地简化了 HTML 文档遍历、事件处理、动画以及 Ajax 交互等操作。JQuery 提供了一个简洁且强大的 API 接口,...

    Learning.JQuery配套源码

    现在,让我们一起探索"Learning+jquery+code"中的源码,深入了解jQuery的内在奥秘。 1. **选择器机制**:jQuery的选择器基于CSS,它允许开发者通过类名、ID、属性等来高效地定位DOM元素。源码中,我们可以看到...

    JQuery核心源码_全套1.5_2.0.2

    《jQuery核心源码详解——从1.5到2.0.2的演进之路》 jQuery,这个被誉为“JavaScript库的王者”,自2006年发布以来,因其简洁易用的API和强大的...现在,就让我们一起打开这份珍贵的资源,踏上jQuery源码探索之旅吧!

    精通JavaScript(源代码) jQuery之父John Resig所写

    《精通JavaScript(源代码)》是由jQuery之父John Resig撰写的高级JavaScript技术书籍,它不仅深入探讨了JavaScript的核心概念,而且重点解析了jQuery库的内部工作机制,为读者揭示了JavaScript编程的深层次奥秘。...

    jQuery 源碼解讀

    通过以上对jQuery源码的分析,我们可以看到其在DOM操作、事件处理、动画、AJAX和工具函数等方面的精巧设计。理解并掌握这些核心概念,不仅能够提高我们的开发效率,也为我们进一步探索JavaScript和前端技术打下坚实...

    jquery 放大插件

    《jQuery放大插件详解——实现前端放大镜特效的奥秘》 在网页设计中,为了提升用户体验,常常需要实现一些动态效果,其中放大镜特效就是一种广泛应用的技术。它能让用户在不离开页面的情况下,对图片或者某些细节...

    北大青鸟HTMLT当当网源码

    1. **HTML结构元素**:如`<html>`、`<head>`、`<body>`等,它们定义了网页的整体框架。`<head>`包含了页面元信息,如标题、字符集设置等,而`<body>`则包含用户可见的内容。 2. **段落和标题**:`<p>`用于创建段落...

    jQuery.curpos.js插件获textarea输入框下光标的位置.zip

    《jQuery.curpos.js插件:掌握输入框光标位置的奥秘》 在网页开发中,与用户交互的表单元素如textarea常常需要细致的控制,例如获取或设置光标位置,这在实现某些特定功能时是必不可少的。jQuery作为一款广泛使用的...

    阴阳师项目源码(动态网页)

    《阴阳师项目源码解析——探索动态网页的奥秘》 在互联网技术日新月异的今天,HTML、CSS和JavaScript作为网页开发的基石,对于任何想要深入学习Web开发的人来说,都是不可或缺的知识点。"阴阳师项目源码(动态网页...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ │ 13.RPC底层通讯原理之Netty线程模型源码分析.wmv │ │ │ ├─14.分库分表之后分布式下如何保证ID全局唯一性 │ │ 14.分库分表之后分布式下如何保证ID全局唯一性.mp4 │ │ │ └─15.大型公司面试必答之...

    jquery-analysize:阅读jq

    《深入理解jQuery-analysize:探索开源系统的奥秘》 jQuery-analysize 是一个基于 jQuery 的分析工具,它为开发者提供了深入理解网页元素大小、性能和内存占用的实用功能。这个开源项目旨在帮助前端开发者优化网页...

    商务企业网站CSS模板173444_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.rar

    同时,JS库如jQuery或者现代化的框架如React、Vue等,也可能被集成以简化开发流程。 "web-template-3111"可能是模板的核心文件夹,其中包含了所有必要的HTML、CSS和JS文件,以及可能的图像资源和字体文件。开发者...

    手机h5页面40套

    《全面解析:手机H5页面源码的奥秘与实践》 手机H5页面,作为移动互联网时代的重要组成部分,已经成为企业、个人展示品牌形象、提供互动服务的重要工具。本资源包包含40套精心设计的手机H5页面源码,旨在为开发者...

    商务企业网站CSS模板234202_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.rar

    通过使用JavaScript库或框架(例如jQuery),可以实现动态效果,如滑动菜单、图片轮播、表单验证等,增加用户的互动体验。此外,JavaScript还可以处理异步数据请求,实现AJAX加载,使网页内容更新无需刷新页面,提高...

    商务企业网站CSS模板523402_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.rar

    此外,JavaScript库和框架如jQuery可能也被应用其中,简化了复杂的DOM操作,使得动画效果和事件处理更加便捷。 再者,HTML5(H5)的引入为网站带来了更强大的功能和更好的兼容性。HTML5作为最新的超文本标记语言...

    2048的游戏

    在分析源码的过程中,你还可以学习到错误处理、状态管理(如游戏结束条件的判断)、用户交互设计等方面的知识。同时,这个游戏的优化也是一个有趣的挑战,比如如何通过算法优化来减少生成重复数字,提高游戏的可玩性...

    商务企业网站CSS模板613390_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.rar

    例如,通过jQuery库或者其他JavaScript框架,开发者可以轻松创建滑动导航、弹出框、轮播图等增强用户体验的组件。"商务企业网站CSS模板613390"中的JavaScript代码很可能包含了这些实用功能,使得网站不仅在视觉上...

    商务企业网站CSS模板283433_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.rar

    《商务企业网站CSS模板283433:构建高效响应式网页的奥秘》 在互联网技术日新月异的今天,一个优秀的商务企业网站是企业形象展示、产品推广和服务提供的重要窗口。"商务企业网站CSS模板283433"是一个专为现代商务...

    商务企业网站CSS模板363425_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.rar

    《商务企业网站CSS模板363425:构建高效响应式网页的奥秘》 在互联网技术日新月异的今天,一个优秀的商务企业网站是企业形象展示、产品推广和服务提供的重要窗口。"商务企业网站CSS模板363425"就是这样一套专为商务...

    黑色海洋探索网页模板是一款太空海底探索html5网站模板下载。_html网站模板_网页源码移动端前端_H5模板_自适应.rar

    使用JavaScript库或框架(如jQuery、Vue.js或React.js)可以简化代码,提高性能,并支持异步数据加载,提升用户体验。 模板中的文件名表明,该模板可能包含多个HTML文件,用于构建不同页面,如首页、关于我们、联系...

Global site tag (gtag.js) - Google Analytics