- 浏览: 520908 次
- 性别:
- 来自: 北京
博客专栏
-
jQuery技术内幕
浏览量:200679
最新评论
-
青春依旧:
学习html5哪里好?当然华清远见是首选!
[原创] jQuery源码分析-01总体架构 -
追梦1819:
[size=x-small][color=red][/colo ...
[原创] jQuery源码分析-04 选择器-Sizzle-设计思路 -
niuqiang2008:
学习学习
[原创] jQuery源码分析-04 选择器-Sizzle-工作原理 -
liuweihug:
jquery 解析正则表达式及常见的Regex规则和表达式 - ...
[原创] jQuery源码分析-02正则表达式-RegExp-常用正则表达式 -
liang8768:
mark!!!
[原创] jQuery源码分析-00前言开光
文章列表
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
博客搬家了,jQuery源码的持续分析请访问:http://www.cnblogs.com/nuysoft/
[原创] jQuery源码分析(版本1.6.1)
00 前言开光
01 总体架构
02 正则表达式-RegExp-常用正则表达式
03 构造jQuery对象-源码结构和核心函数
03 构造jQuery对象-工具函数
04 选择器-Sizzle-工作原理 new
05 异步队列 Def ...
[置顶] 每天上班都要开着的网页
- 博客分类:
- 天天向上
<script>
setInterval( function() {
var date = new Date();
if (date.getMinutes() == 0 || date.getMinutes() == 30) {
alert("老大,喝点水,休息一下!");
}
}, 1000 * 60);
</script>
作者:nuysoft/高云 QQ:47214707 Email:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接
让我们把工作原理讲的更简单一些,先不讲从右向左也不讲接口,先来分析下如果要执行一段选择器表达式,或者说设计一个简版选择器引擎,直觉上需要做些什么工作:
以div > p为例来模拟这个过程,找div元素下的p元素:
1. 首先要能正确的将独立的块表达式从选择器表达式中分割出来,这是必须的,否则没法找div元素或p元素
2. 然后要能正确的执行块表达式,无论是left>right或right>l ...
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
在分析Sizzle源码之前,先整理一下选择器的工作原理
先明确一些选择器中用到的名词,后边阅读时不会有歧义:
选择器表达式: "div > p"
块表达式: "div" "p"
并列选择器表达式: "div, p"
块分割器: Sizzle中的chunker正则,对选择器表达式从左向右分割出一个个块表达式
查找器: 对 ...
作者:nuysoft/JS攻城师/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
后文预告:jQuery中的正则表达式分析
2.4 常用正则表达式
在网上找到一篇广为流传的文章《常 ...
作者:nuysoft/JS攻城师/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
前记:本文收集了jQuery中出现的各种遍历技巧和场景
// 简单的for-in(事件)
for ( type in events ) {
}
// 缓存length属性,避免每次都去查找length属性,稍微提升遍历速度
// 但是如果遍历HTMLCollection时,性能提升非常明显,因为每次访问HTMLCollection的属性,HTMLCollection都会内部匹配一次所有的节点
f ...
作者:nuysoft/JS攻城师/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
后文预告:封装事件对象 便捷接口解析
前记:
这一章写的很用心,希望有所启发。因为排 ...
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
分析jQuery源码时记录的一点感悟
1. 链式写法
这是jQuery语法上的最大特色,也许该改改POJO里的set方法,和其他的非get方法什么的,可以把多行代码合并,减去每次敲打对象变量的麻烦
2. 动态参数
偶尔使用Java的动态数组,取出调用时参数个数的限制,可以减少对同一个方法的反复调用
3. 弱化类型
偶尔将参数类型设为Object,多使用泛型,可以减少方法数,简化调用时的类型转换,类型转换在方法内进行 ...
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
后文预告:封装事件对象 便捷接口解析 ready专题
10.4 .bind() .one()
10.4.1 如何使用
.bind( eventType, [eventData], handler(eventObject) ) 在匹配的元素上绑定指定类型的事件处理函数
.bind( eventType, [eventData], preventBubble ) 第三个参数为false,则阻止浏览器默认行为并停止事件冒泡, ...
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
10.2
源码结构
jQuery的事件模块主要包含以下内容:
子模块
接口
1
事件管理工具函数
jQuery.event.add/remove/trigger/handle/fix/special
2
事件对象
jQuery.Event(模拟实现部分DOM3事件接口)
3
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF下载在最后。
7. 数据缓存 Cache
jQuery提供了jQuery.data()和jQuery.fn.data(),实现对缓存的操作。jQuery.fn.data()内部通过jQuery.data()实现。jQuery.data()有三种用法:
/**
* jQuery.data( elem, key, value
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF下载在最后。
6. 浏览器测试 Support
浏览器之间的差异太让人头大了,本章也仅仅介绍jQuery实现浏览器兼容的基本思路,以及封装了种种差异后的接口。$.support中的众多属性和实现方式,超出了本文的写作初衷(一个头两个大啊),有兴趣的可以自行搜索、翻阅相关的资料。
兼容各种主流浏览器是JavaScript库的必修课之一,一般来说检测 ...
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF下载在最后。
前记:
关 ...
作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com
声明:本文为原创文章,如需转载,请注明来源并保留原文链接。
读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF下载在最后。
前记:
国庆给 ...