Fork me on GitHub
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页
  2013年9月22日
摘要: 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!通过Expr.find[ type ]我们找出选择器最右边的最终seed种子合集通过Sizzle.compile函数编译器,我们把tokenize词法元素编译成闭包函数超级匹配superMatcher,用佳的方式从seed种子集合筛选出需要的数据也就是通过seed与compile的匹配,得出最终的结果了superMatcher 函数 这个方法并不是一个直接定义的方法,通过matcherFromGroupMatchers( elementMatchers, setMatchers )方法return出来的一个curry化的 阅读全文
posted @ 2013-09-22 19:14 【艾伦】 阅读(6316) 评论(4) 推荐(37) 编辑
  2013年9月15日
摘要: 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!从Sizzle1.8开始,这是Sizzle的分界线了,引入了编译函数机制网上基本没有资料细说这个东东的,sizzle引入这个实现主要的作用是分词的筛选,提高逐个匹配的效率我们不直接看代码的实现,通过简单的实现描述下原理:以下是个人的理解,如果有错误欢迎指出!Javascript有预编译与我们说的编译函数是不同的概念什么是JavaScript的“预编译”?function Aaron() { alert("hello");};Aaron(); //这里调用Aaron,输出world而不是hellofun 阅读全文
posted @ 2013-09-15 16:08 【艾伦】 阅读(13135) 评论(30) 推荐(108) 编辑
  2013年9月10日
摘要: 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!先来回答博友的提问:如何解析div > p + div.aaron input[type="checkbox"]顺便在深入理解下解析的原理:HTML结构 Sizzle 选择器语句div > p + div.aaron input[type="checkbox"]组合后的意思大概就是:1. 选择父元素为 元素的所有子元素 元素2. 选择紧接在 元素之后的所有 并且class="aaron " 的所有元素3. 之后选择 div.aaron 元素内部的所有 阅读全文
posted @ 2013-09-10 08:34 【艾伦】 阅读(12554) 评论(19) 推荐(35) 编辑
  2013年9月5日
摘要: 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!浏览器从下载文档到显示页面的过程是个复杂的过程,这里包含了重绘和重排。各家浏览器引擎的工作原理略有差别,但也有一定规则。简单讲,通常在文档初次加载时,浏览器引擎会解析HTML文档来构建DOM树,之后根据DOM元素的几何属性构建... 阅读全文
posted @ 2013-09-05 11:58 【艾伦】 阅读(26677) 评论(29) 推荐(58) 编辑
  2013年8月26日
摘要: 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 打开jQuery源码,一眼看去到处都充斥着正则表达式,jQuery框架的基础就是查询了,查询文档元素对象,所以狭隘的说呢,jQuery就是一个选择器,并这个基础上构建和运行查询过滤器! 工欲善其事,必先利其器,所以先从正则入手我们来分解一个表达式 // A simple way to check ... 阅读全文
posted @ 2013-08-26 22:26 【艾伦】 阅读(43138) 评论(30) 推荐(81) 编辑
  2013年8月24日
摘要: 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!版本截止到2013.8.24 jQuery官方发布最新的的2.0.3为准附上每一章的源码注释分析 :https://github.com/JsAaron/jQuery正在编写的书 -jQuery架构设计与实现本人在慕课网的教程... 阅读全文
posted @ 2013-08-24 14:52 【艾伦】 阅读(196921) 评论(33) 推荐(254) 编辑
  2013年8月23日
摘要: 拜读一个开源框架,最想学到的就是设计的思想和实现的技巧。废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过,不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery又给扫一遍我也不会照本宣科的翻译源码,结合自己的实际经验一起拜读吧!github上最新是jquery-master,加入了AMD规范了,我就以官方最新2.0.3为准整体架构jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作、例如:$().find().css()$().hide().html('....').hide().从上面的写法上至少可以发现2个问题1. jQuer 阅读全文
posted @ 2013-08-23 21:34 【艾伦】 阅读(99171) 评论(88) 推荐(248) 编辑
  2013年8月9日
摘要: 不经意看到了一个构思非常惊人的异步流程控制库,发出来分享下http://cho45.stfuawsc.com/jsdeferred/关于CommonJS Promises请看另一个异步库 http://www.cnblogs.com/aaronjs/p/3168588.html整个代码非常简洁,易用,不过呢是小日本写的东西…API手册:加载jsdeferred定义延迟对象。为方便起见,我们用Deferred.define()方法把接口导出到全局作用于中Deferred.define();通过这样做,你就能使用如 next(), loop(), call(), parallel() and wa 阅读全文
posted @ 2013-08-09 09:13 【艾伦】 阅读(2571) 评论(0) 推荐(3) 编辑
  2013年8月2日
摘要: avalon大家可能不熟悉,但是Knockout估计或多或少听过用过,那么说说KO的几个概念监控属性(Observables)和依赖跟踪(Dependency tracking)声明式绑定(Declarative bindings)模板(Templating)本章主要提到 监控属于 与 依赖跟踪(后改名叫计算属性)监控顾名思义,监听着你设定目标的变化,换句话说能够通知订阅者它的改变以及自动探测到相关的依赖。计算属性,就是依赖监控属性变化而自动调用处理更新KO的一个例子如果你已经有了监控属性firstName和lastName,你想显示全称怎么办? 这就需要用到依赖监控属性了 – 这些函数是一个 阅读全文
posted @ 2013-08-02 08:18 【艾伦】 阅读(16664) 评论(2) 推荐(14) 编辑
  2013年7月31日
摘要: MVVM试图更加清晰的讲用户界面(UI)开发从应用程序的业务逻辑与行为中心分离,因为,很多这样的模式的实现都需要利用声明式数据绑定来实现讲View(视图)工作从其他层分离所以出现了一大堆自定义的声明式的语法:如:Avalon作用域绑定(ms-controller, ms-important)模板绑定(ms-include)数据填充(ms-text, ms-html)类名切换(ms-class, ms-hover, ms-active)事件绑定(ms-on,……)显示绑定(ms-visible)插入绑定(ms-if)双工绑定(ms-duplex,原来的ms-model)样式绑定(ms-css)数 阅读全文
posted @ 2013-07-31 20:10 【艾伦】 阅读(10618) 评论(4) 推荐(9) 编辑
  2013年7月27日
摘要: 距avalon0.7版本发布有一段时间,由于之前的稳定性,就停止一段时间更新,期间研究了下Knockout源码,也尝试写了一个小型的mvvm的实现模型,仅仅只是仿造ko的核心实现,把无关的东西给剥离掉了,有时间总结一下发布出来。ko算很早就出现的MVVM库了,实现是手段也是异常的巧妙,但是把监听的东西都转成函数表达,调用的时候也必须是函数形式,但使用习惯上,我就不太喜欢了Knockout监控属性通过observable内部转换成后,返回带有一个观察者模式的的函数(执行调用与赋值的时候都会有不同的处理),所以在使用的时候还要 this.firstName()执行才行,observable() 是 阅读全文
posted @ 2013-07-27 11:05 【艾伦】 阅读(4129) 评论(2) 推荐(5) 编辑
  2013年7月18日
摘要: http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvp感觉二者非常像,都是pub/sub机制,如何进行区分?分别在什么不同的场景中进行应用?在Obsever模式中, 不存在封装约束的单一对象。Observer 和 Subject 必须合作才能维持约束。Communication(通讯)模式由观察者和目标互联的方式决定:单一目标通常有很多观察者,有时一个目标的观察者是另一个观察者的目标Mediator 和 Observer 都能促进松耦合,然后Mediator 模式通过限制对象严格通过Mediator 进 阅读全文
posted @ 2013-07-18 21:08 【艾伦】 阅读(5363) 评论(3) 推荐(2) 编辑
摘要: 目的 DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上 典型的常用元素 或者习惯性的用来显示文本,但是在技术上来说你可以用任何元素的。 例子:Today's message is: 参数主要参数 Knockout 会把参数值设置到元素文本节点上,节点上任何存在的内容将会被覆盖重写 这个参数是一个监控属性值,任何时候在值被改变的时候它绑定元素text将会触发更新,假如不是一个监... 阅读全文
posted @ 2013-07-18 10:09 【艾伦】 阅读(2881) 评论(0) 推荐(0) 编辑
  2013年7月17日
摘要: "visible" 绑定用途DOM元素的显示或者隐藏是根据绑定的值来的,前提是将visible绑定给该元素例子 You will see this message only when "shouldShowMessage" holds a true value. 参数主要参数当这个参数是一个假值时(举例来说,布尔值的false , 数值0,或者null,或者undefined),绑定时候设置你的元素的style.display是none,从而使之隐藏起来。这个优先级要高于CSS中定义的当这个参数是一个真值时(举例来说,布尔值是true,或者非空对象与数组 阅读全文
posted @ 2013-07-17 13:36 【艾伦】 阅读(1441) 评论(0) 推荐(2) 编辑
  2013年7月16日
摘要: 假如你想到侦测和相应一个对象的改变,假如你想要侦测和响应一一组合集的改变,就要用observableArray在许多场景都是很有用的,比如你要在UI上需要显示/编辑的一个列表数据集合,然后对集合进行添加和删除。Examplevar myObservableArray = ko.observableArray(); // Initially an empty arraymyObservableArray.push('Some value'); // Adds the value and notifies observers去看下怎么能绑定observableArray... 阅读全文
posted @ 2013-07-16 08:45 【艾伦】 阅读(3950) 评论(1) 推荐(2) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页