Ruby's Louvre

The Crankiness of Belief achieves Great , not the Trick of Regulation.

导航

公告

置顶随笔 #

[置顶]我的第五代选择器Icarus

摘要: Icarus是我目前匹配精度最高(通过470个单元测试保证精度),速度最快(IE67下力压jQuery,其他浏览器都是使用querySelectorAll不分上下)的选择器,并且它全面支持CSS3的所有新增伪类,支持jQuery所有自定义伪类,并且支持对XML的查找,支持XML带命名空间的元素的查找(jQuery只能支持不带命名空间的,并且非常容易报错)。Icarus与jQuery1.7在slickspeed中的速度比赛结果(数值最大代表越慢): IcarusjQuery1.7比率 ...阅读全文

posted @ 2011-11-10 12:44 司徒正美 阅读(9708) 评论(21) 编辑

[置顶]目录

摘要: 不知不觉写了这么多东西,整理一下与己方便也与人方便。 完整的控件教程 颜色选择器 1 日历 1 日期选择器 1 富文本编辑器 1 2 3 4 5 表格排序 1 2 javascript相关的小研究心得 ...阅读全文

posted @ 2009-09-15 09:09 司徒正美 阅读(8659) 评论(15) 编辑

2013年5月23日 #

angular与avalon的比较

摘要: angular是找大而面的道路,因此体积非常庞大,1.6-1.7万行;avalon旨在提供一种远离DOM操作的前端开发体验,0.6.3只有2420行,min只有29kb。avalon从angular抄来了不少好东西,如{{}}插值表达式,ms-model(通过事件实现双向同步),ms-controller(为了VierModel指定作用域范围),但都做了增强,{{aaa|html}添加html过滤器就能输出innerHTML,ms-model可以通过data-observe来开关双向同步,ms-controller拥有孪生兄弟ms-important。avalon的$watch与ms-bind阅读全文

posted @ 2013-05-23 13:58 司徒正美 阅读(398) 评论(1) 编辑

2013年5月21日 #

迷你MVVM框架 avalonjs v6.2发布

摘要: 本版本的更新如下。 添加$json对象,它是ViewModel对应一个纯JS对象,没有访问器与框架添加的一些特有方法与属性,方便用户直接把它提交到后台。以后我们每次修改ViewModel的属性都会同步此对象。从此我们修改ViewModel时就能同时同步View与Model。 重构avalon.define, Collection, 求值函数,代码更加精简,比上一版本减少50行。 现在ms-model方法可以绑定诸如aaa.bbb.ccc这样的多级属性。 废弃avalon.forEach, 改用avalon.each,但旧的还是能用的。 现在$watch方法可以监听数组长度...阅读全文

posted @ 2013-05-21 21:37 司徒正美 阅读(980) 评论(11) 编辑

2013年5月17日 #

迷你 MVVM框架avalon的使用教程

摘要: 最近有许多人问我怎么用这东西,如果是那些用过knockout的人还好,之前没有接触过MVVM的人可能一头雾水。大多数人被我那个jquery ui的演示吸引过来,都深感它的威力之大。这里详细介绍一下它的用法吧。第一步,当然是引入avalon库,就像引入jQuery库那样,当然要从官网下。现在avalon的地址为这个,只要这个文件就好了,当然旁边还有个avalon_min.js。第二步,是创建ViewModel,就是MVVM最后那两个字母的全称。它是M的再包装,用于自动同步视图,当然视图也能自动同步VM。VM与V这种双向绑定的特性非常诱人,可以让我们少写无数代码,尤其是那样麻烦的DOM代码。虽然j阅读全文

posted @ 2013-05-17 18:55 司徒正美 阅读(1333) 评论(8) 编辑

2013年5月14日 #

Firefox 21 正式到来

摘要: Mozilla在官方FTP中放出了Firefox 21正式版本,预计明天会在官网正式发布。下面来看看该版本的一些主要新特性:提供了3个不跟踪(Do Not Track)选项,之前版本中只有一个复选框如果需要,Firefox会给出改善你的应用程序启动时间的建议初步实现了Firefox Health Report,该工具能够帮助用户优化他们的Firefox配置为 JavaScript 开发者实现了远程 Profiling功能支持<main>标签实现了对Scoped Stylesheets的支持阅读全文

posted @ 2013-05-14 21:07 司徒正美 阅读(433) 评论(2) 编辑

2013年5月13日 #

迷你MVVM框架 avalonjs v6.1发布,性能大幅提高

摘要: 本次更新,带来了几个新API与在IE6的更好性能。 添加ms-css绑定,用法为ms-css-xxx=yyy, 相当于jQuery的$el.css(xxx,yyy)操作,不同的,以后yyy有什么改动,框架都是自动帮你处理。 添加非常好用的html过滤器,即{{ xxx | html}} 相当于原来的 ms-html="xxx",不同的是ms-html是直接使用innerHTML,会替换掉原元素的所有子节点,而html过滤器只对原子节点进行替换,不会伤及无辜。 重构ready,原来的...阅读全文

posted @ 2013-05-13 21:47 司徒正美 阅读(1592) 评论(15) 编辑

2013年5月12日 #

使用avalon MVVM框架打造整一套jquery ui

摘要: 为了验证avalon的可用性与高效性,我用它重新实现jQuery ui。打造过程如下,直接到jQuery ui官网,查看它们的运行效果,不看其JS源码,然后取其HTML结构修改。使用了MVVM编写代码,能保证你思维清晰畅顺,不用在DOM逻辑与数据处理中跳来跳去,因此带来比jQuery还强大的革命性生产效率。仅用一天,实现8成以上的功能,而且JS代码量非常少,都是原来的百分之几至十之间。基本上,现在avalon的源码挑不出什么毛病。以后从mass分离出ajax,effect等模块来,构建成avalon的一个组件,这些UI组件的可用性就更高了。jquery ui的样式在本博文中会受到园子样式的影响阅读全文

posted @ 2013-05-12 14:59 司徒正美 阅读(2410) 评论(11) 编辑

2013年5月10日 #

使用avalon MVVM框架打造jquery ui的日历

摘要: 我直接把jquery datepicker的结构抄过来,类名也照搬。于是一个换肤的日历就诞生了。 <div ms-controller="datepicker"> <div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" style="display:block"> <div class="ui-datepicke阅读全文

posted @ 2013-05-10 14:32 司徒正美 阅读(1663) 评论(6) 编辑

2013年5月7日 #

avalon v6发布,迷你简单易用的MVVM框架

摘要: avalon是一个迷你高效易用的MVVM框架,遵循“操作数据即操作DOM”的理念,让你在代码里基本见不到一点DOM操作代码。DOM操作全部在绑定后,交给框架处理。相当后端有了ORM一样,不用你手写SQL,提高生产力!此版本只要是小补小修。只要改进有 IE透明滤镜强制使用zoom:1来hasLayout define方法中,去掉一个多除的if (skipArray.indexOf(name) !== -1) {判定,感谢五群@tcdona的指正。 添加mouseleave, mouseenter的跨浏览器支持。 对addClass进行trim操作,让其更整洁,感谢@qinerg ...阅读全文

posted @ 2013-05-07 14:06 司徒正美 阅读(1272) 评论(7) 编辑

2013年5月4日 #

迷你MVVM框架 avalon的魔术

摘要: 本文将深入介绍一下avalon的运作机理及与jQuery的区别。许多人都知道MVVM是MVC的一个变体,但那些MVC是在后端的,包括微软的WPF,这意味着这个V与我们前端接触到的V差别很大。后端的V就是使用各种模板拼凑成一个静态页面给前端。而前端的V在JSer的眼中就是一个巨大的DOM树,要考虑加载时间,渲染顺序,浏览器对HTML的容错与修复,浏览器的默认事件,新图片与节点增删移动引起的reflow,是活生生的。前端的V就是一个DOM的世界,而后端就是字符串!M,模型,一个数据体,用于填允我们的页面,通常PHP交给我们时数据已经填好了,想改变,就要再发出请求,然后通过jQuery寻找节点,修改阅读全文

posted @ 2013-05-04 13:18 司徒正美 阅读(1286) 评论(3) 编辑

2013年5月3日 #

迷你MVVM框架 avalonjs v5.1发布,性能大幅提高

摘要: 早在avalon在IE与firefox有较为严重的性能问题,chrome等则由于它们太逆天因此看不出。主要原因是动态插入节点时,each由于一些帮方法考虑不周,结果不得不逐个插入,虽然使用了nextTick进行缓冲,但延迟明显。然后avalonjs v5把大体的架构完成了,然后重点改良这些方法了。在v5.1中所有延迟都没有了,即便在IE6下也很接近之前在chrome的运行效果。算是一次非常出色的改进。1, addItemView方法不再逐个复制,逐个插入了。//原来 function addItemView(index, item, data) { var scopes = da...阅读全文

posted @ 2013-05-03 15:47 司徒正美 阅读(1936) 评论(15) 编辑

仅列出标题  下一页