文章分类 -  javascript

摘要:如果快速匹配不成功,则会进入sizzle自己的解析顺序,主要流程如下:总结流程如下:(1)函数sizzle是sizzle的入口,如果能querySelectAll快速匹配,则返回结果(2)函数Select是sizzle自己的选择流程入口(3)对于不包含伪类选择器的,从右向左匹配,先选择右边的分词的结果,再验证关系是否成立(4)对于包含伪类选择器的,则直接进入匹配函数生成流程,最后通过setMatcher这个终极匹配器递归sizzle获得结果(5)借助condense函数筛选结果从技术上来说的总结:(1)NB的正则表达式,各种选择器,分组匹配,反向引用,RegExp的exec的运用。(2)函数闭 阅读全文
posted @ 2013-09-13 15:08 mufc-go 阅读(162) 评论(0) 推荐(0)
摘要:不是所有的选择器都需要去分词,生成相应的匹配函数,这样流程比较复杂,当浏览器具备原生的方法去匹配元素是,没有理由不优先匹配,下面看看进入Sizzle后,它是怎么优先匹配这些元素的:function Sizzle( selector, context, results, seed ) { /* 执行$("ul.list>li span:eq(1)")时,递归第二次时, selector "ul.list>li span" */ var match, elem, m, nodeType, // QSA vars i, groups, ... 阅读全文
posted @ 2013-09-04 16:17 mufc-go 阅读(523) 评论(0) 推荐(1)