欢迎来我的专栏查看系列文章。 compile 讲了这么久的 Sizzle,总感觉差了那么一口气,对于一个 selector,我们把它生成 tokens,进行优化,优化的步骤包括去头和生成 seed 集合。对于这些种子集合,我们知道最后的匹配结果是来自于集合中的一部分,似乎接下来的任务也已经明确:对种子进行过滤(或者称其为匹配)。 匹配的过程其实很简单,就是对 DOM 元素进行判断,而且弱是那种一代

jquery   源码学习   javascript  

欢迎来我的专栏查看系列文章。 select 函数 前面已经介绍了 tokensize 函数的功能,已经生成了一个 tokens 数组,而且对它的组成我们也做了介绍,下面就是介绍对这个 tokens 数组如何处理。 DOM 元素之间的连接关系大概有 > + ~ 几种,包括空格,而 tokens 数组中是 type 是有 tag、attr 和连接符之分的,区分它们 Sizzle 也是有一套规则的,比如

jquery   源码学习   javascript  

欢迎来我的专栏查看系列文章。 在编译原理中,词法分析是一个非常关键的环节,词法分析器读入字节流,然后根据关键字、标识符、标点、字符串等进行划分,生成单词。Sizzle 选择器的匹配思路和这非常像,在内部叫做 Tokens。 Tokens 词法分析 其实词法分析是汇编里面提到的词汇,把它用到这里感觉略有不合适,但 Sizzle 中的 tokensize函数干的就是词法分析的活。 上一章我们已经讲到了

jquery   源码学习   javascript  

欢迎来我的专栏查看系列文章。 Sizzle 原本是 jQuery 中用来当作 DOM 选择器的,后来被 John Resig 单独分离出去,成为一个单独的项目,可以直接导入到项目中使用。jquery/sizzle。 本来我们使用 jQuery 当作选择器,选定一些 #id 或 .class,使用 document.getElementById 或 document.getElemensByClas

jquery   源码学习   javascript  

欢迎来我的专栏查看系列文章。 init 构造器 前面一讲总体架构已经介绍了 jQuery 的基本情况,这一章主要来介绍 jQuery 的入口函数 jQuery.fn.init。 由于这个函数直接和 jQuery() 的参数有关,先来说下能接受什么样的参数。源码中接受 3 个参数: init: function (selector, context, root) { ... } jQuery()

jquery   源码学习   javascript  

欢迎来我的专栏查看系列文章。 决定你走多远的是基础,jQuery 源码分析,向长者膜拜! 我虽然接触 jQuery 很久了,但也只是局限于表面使用的层次,碰到一些问题,找到 jQuery 的解决办法,然后使用。显然,这种做法的弊端就是,无论你怎么学,都只能是个小白。 当我建立这个项目的时候,就表示,我要改变这一切了,做一些人想做,憧憬去做,但从没踏入第一步的事情,学习 jQuery 源码。 到目前

javascript   源码学习   jquery  

引言 无论新手老手,在前端开发中,经常要为DOM元素绑定事件,以实现某些功能。 如何通过一些JS技巧,达到减少事件绑定,优化页面性能的目的呢? 接下来介绍一下我个人对优化事件绑定的实践。 我尽量写得通俗易懂一些,希望能为刚入门前端的人们带来帮助。 也欢迎大家踊跃评论和指正,一起分享建议和想法哦。 事件绑定利器:利用事件冒泡机制 哈哈,放心,我不会强行地科普一堆浏览器事件机制晦涩的理论, 事件传播机

事件冒泡   事件绑定   事件监听   jquery   javascript  

IE8浏览器下,解决jQuery append方法不生效的问题 环境:IE8 jQuery(v1.11.3) 这段代码在Chrome、FF、IE11 上,都是可以正常渲染的,但是在IE8 下不行,原因是domList里面的html字符串标签没有闭合。 var domList = ‘<a>’; $('body').append('domList') 改成以下即可 var domList = ‘<a

ie8兼容性   jquery   javascript  

惺惺惜惺惺想寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻

jquery  

这里声明一下,这不是反jQuery的文章,jQuery作为一个js库给大家的项目开发带来很多便利,但有时候仔细想想,我们真的需要jQuery吗?一年前的lpisme的主题的一个特色是没有jQuery,还是现在的Pinghsu主题,也是不用jQuery的。这里我想告诉大家,我持有的观点是在中小型的项目中建议能不用jQuery就不用。 背景知识 在所有的现代浏览器(IE9+)里,它们所提供的原生DOM

jquery   vanilla   javascript  
1 2 3 4 5 6 7 8 9