上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: 主要内容:addEventListener绑定方式的问题:document.body.addEventListener( 'click', function() { alert('body clicked'); },false);以及第二个参数为object的优势:document.body.addEventListener('click', { handleEvent: function() { alert('body clicked'); } }, false);原文废话太多,我只翻译了主要部分。... 阅读全文
posted @ 2012-03-26 17:30 西山 阅读(1086) 评论(0) 推荐(0) 编辑
摘要: 阅读之前,先看W3C关于WEB Database的一段话:Beware. This specification is no longer in active maintenance and the Web Applications Working Group does not intend to maintain it further.意味着WEB Database规范陷入僵局。html5sql官方网址:http://html5sql.com/简述 html5sql是一个让HTML5 Web Database使用更方便的轻量级JavaScript模块,它的基本功能是提供在一个事务中顺序执行S. 阅读全文
posted @ 2012-03-10 19:13 西山 阅读(5931) 评论(0) 推荐(2) 编辑
摘要: Lawnchair是一个轻量级的移动应用程序数据持久化存储方案,同时也是客户端JSON文档存储方法,优点是短小,语法简洁,扩展性比较好。现在做HTML5移动应用除了LocalStorage的兼容性比较好之外,SQL web database以及IndexedDB都处在僵局中,虽然有人叫嚣着“我们应该干掉 LocalStorage API”,但那是后话,现在也没得选择。Lawnchair有个曾经的官网:http://westcoastlogic.com/lawnchair/,不过这个站点提供的源码版本过时了,而且还有错误。需要下载的话,最新版本在https://github.com/brianl 阅读全文
posted @ 2012-03-01 02:28 西山 阅读(3654) 评论(1) 推荐(1) 编辑
摘要: 个人觉得这个例子虽然可能不具有实际意义,但是可以很好的理解Sizzle选择的过程实例说明先看一个例子:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head> <meta http-equiv="Content-Type" content="text/html; charset 阅读全文
posted @ 2012-02-21 16:53 西山 阅读(2658) 评论(5) 推荐(3) 编辑
摘要: 元素过滤是Sizzle中最复杂的一部分基本形式Sizzle.filter = function( expr, set, inplace, not ) {}expr 过滤表达式set 候选集合inplace 是否原地修改not 是否取补集说明:set传递的是一个集合(数组),如果inplace为true,set会被修改;not的作用是用来取补集。还是用个例子来说明下:<li id="a1" class="test"></li><li id="a2" class="test">< 阅读全文
posted @ 2012-02-18 00:32 西山 阅读(1312) 评论(0) 推荐(1) 编辑
摘要: 查找的入口对应的是Sizzle.find方法,Sizzle.find = function( expr, context) {}expr :查找的表达式context :查找的范围find的步骤第一步:判断主要集合,方法说过了,依次匹配,顺序就是ID --> NAME --> TAG第二步:(1)当有类型被匹配时,调用相应的方法,获取集合set。(2)当ID,NAME,TAG全部不匹配时,获取context范围内的全部元素集合set第三步:去除expr中已经匹配的部分,返回结果{expr : expr,set : set}因此,Sizzle.find的大致代码流程是Sizzle.f 阅读全文
posted @ 2012-02-15 14:26 西山 阅读(2571) 评论(0) 推荐(1) 编辑
摘要: 主要流程与正则表达式分块var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g;这个正则比较长,主要是用来分块和一步预处理。1、2、3、4、'div#test + p > a.tab' --> ['div#test','+ 阅读全文
posted @ 2012-02-15 13:46 西山 阅读(5381) 评论(3) 推荐(3) 编辑
摘要: 大家都知道,Sizzle是jQuery的御用选择器引擎,是jQuery作者John Resig写的DOM选择器引擎,速度号称业界第一。另外,Sizzle是独立的一部分,不依赖任何库,如果你不想用jQuery,可 以只用Sizzle。所以单独拿出来特别对待。在Prototype1.7中,选择器也采用了Sizzle,不过版本有点老,所以我去Sizzle网站搞了一份新的 下来,于是下面分析的时候使用的是最新版的Sizzle.js预先说明在分析初期为了保证各个浏览器的结果一致,不考虑原生getElementsByClass以及querySelectorAll的影响,同时忽略XML类型,因此作一下处.. 阅读全文
posted @ 2012-02-15 13:45 西山 阅读(20636) 评论(4) 推荐(9) 编辑
摘要: 简述 $方法是 Prototype 的基础,和jquery中的$作用差不多,不过功能却弱了很多。因为Prototype中还有一个$$方法,看名字就知道,和$相比,$$加了一倍的钱,功能肯定就丰富撒。本文主要是剖析$方法,1.7版本的$$方法使用的是Sizzle引擎,比较复杂,是后面的事情。基本原理 $方法其实比较简单,平时在个人的代码中见得也比较多。基本原理就是如果传入的是一个字符串,就执行document.getElementById方法,如果是一个DOM元素,就直接返回传入的元素,代码实现:function _$(element){ if(typeof element == ... 阅读全文
posted @ 2012-02-03 15:06 西山 阅读(1992) 评论(0) 推荐(0) 编辑
摘要: Date比较好理解,理解清楚了Number对象的toPaddedString方法就可以了。只有两个方法(toJSON和toISOString),而且这两个方法还一样,就是将日期转换为 JSON 字符串(遵循 ISO 格式)。代码很短,我直接贴上来: (function(proto) { function toISOString() { return this.getUTCFullYear() + '-' + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + this.getUT... 阅读全文
posted @ 2012-02-03 15:04 西山 阅读(2277) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 8 下一页