04 2014 档案

摘要:在Sizzle中只剩下最后一段大的函数了,就是select,也就是在sizzle中联系compile和Sizzle函数的关键。它在Sizzle中主要处理那些并非是简单的选择器,如包含有:eq(1)的。直接看源码:function select( selector, context, results,... 阅读全文
posted @ 2014-04-20 18:24 胖蝎子 阅读(274) 评论(0) 推荐(0)
摘要:这篇开始分析Sizzle中的终极匹配器。首先讲一下普通情况下,如:div a的匹配。在matcherFromToken函数中,可以看出匹配函数的组装方式,见源码:if ( (matcher = Expr.relative[ tokens[i].type ]) ) { matchers = [ ... 阅读全文
posted @ 2014-04-15 21:47 胖蝎子 阅读(259) 评论(0) 推荐(0)
摘要:考虑到Sizzle里面函数互相调用的关系,接下来的函数就不会按从上到下的顺序分析,而是采用调用的顺序进行分析。这篇博客参考了这篇文章里的说明(靠这篇文章才理解的。。。。) 首先就是要讲到编译函数,JS是单线程语言,但是在执行程序时,一段函数的运行,会导致线程的阻塞,导致整个程序停顿。这时候异步就出现了,异步的原理不多说了。异步使得JS能够更加灵活的运行,克服了其单线程的限制,但是,大量采用异步会导致整个程序看起来乱糟糟的。所以异步,同步编程的安排还是需要根据实际来控制的。 好像说偏了。。按照上面参考文章的说法,'JavaScript是单线程的,代码也是同步从上向下执行的,执行流程不会随 阅读全文
posted @ 2014-04-10 22:53 胖蝎子 阅读(235) 评论(0) 推荐(0)
摘要:最近一直在搞毕设,实在是没时间写博客了,零碎的时间看代码进度也不快,所以写博客一拖再拖了,今天先补一篇上来。。。在上次写得setDocument以后,紧接着的是一些零碎的功能函数 1 Sizzle.matches = function( expr, elements ) { 2 return Sizzle( expr, null, null, elements ); 3 }; 4 5 Sizzle.matchesSelector = function( elem, expr ) { 6 // 设置document以防万一 7 if ( ( elem.ownerDocu... 阅读全文
posted @ 2014-04-07 21:58 胖蝎子 阅读(282) 评论(0) 推荐(0)