Ruby's Louvre

每天学习一点点算法

导航

迷你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,原来的对document.readyState强行重置,目的是修复firefox3.5-没有document.readyState的BUG,但会在旧式IE下引起疯狂的检测,如果没有nextTick,这问题都就暴露出来,把IE6-8卡死了。现在去他妈的firefox3.5-,不修了!然后去掉each绑定的两个nextTick,基本上IE就“刷”的一下全部内容出来了。不像angular,knockout那样有明显的停滞!这次优化后,估计DOM就没有什么优化余地了。
  • 循环利用文档碎片,整个库只使用一个文档碎片及其克隆。能不克隆的地方就尽量不克隆,因为文档碎片在插入DOM树后,又还原为一个子节点也没有了,作为搬运工,这特性很好用。
  • 重构监控数组与each绑定,现在不会在排序时移动节点了,只是回填数据,这是knockout的“最短编辑长度”算法做得更绝。
  • 添加noop 方法,就是一个空函数。
  • addClass, removeClass, toggleClass现在可以处理多个类名了。
  • data方法一个传参也没有时,行为与jQuery保持一致,返回一个对象。

此外,实现一大堆UI组件,包括

  • ms-draggable="dragcallback""
  • ms-ui="slider"
  • ms-ui="autocomplete"
  • ms-ui="button"
  • ms-ui="tabs"
  • ms-ui="progressbar"
  • ms-ui="accordion"
  • ms-ui="spinner"
  • ms-ui="datepicker"

官网地址为http://rubylouvre.github.io/mvvm/

posted on 2013-05-13 21:47  司徒正美  阅读(2523)  评论(17编辑  收藏  举报