avalon是一个简单易用迷你的MVVM框架,兼容性非常好, 支持IE6+,firefox3.5+, opera11+, safari5+, chrome4。注重性能,由于avalon一直在那些上千的大表格里打滚,经历长期的优化, 它能支撑14000以上绑定(相对而言,angular一个页面只能放2000个绑定)。另,在IE10等能良好支持HTML5的浏览器, 还提供了avalon.modern.js这个高性能的版本。
avalon1.3.8主要是在ms-repeat、 ms-each、 ms-with等循环绑定上做重大性能优化,其次是对一些绑定了事件的指令添加了roolback,让其CG回收更顺畅。
- 重构ms-repeat、ms-each、ms-with, 内部的代理对象全部使用普通的对象实现, 并且一个监控数组只对应一个代理VM数组,从而大量减少VM的数量。
- avalon不再使用scanCallback实现内部各种rendred回调,改成checkScan方法。详看这里的例子。
- fix parseHTML在旧式IE下动态生成tr元素,多添加了caption元素的BUG
- getEachProxy方法在ms-repeat, ms-duplex混合使用时,清空数组,某一部分元素无法同步的BUG
- fix IE6-9下addClass没有对类名进行trim操作的BUG
- fix 短路与,短路或引发的收集依赖失败的BUG
- 重构scanAttr, fix ms-repeat与ms-css, ms-data共存而漏扫的问题
- avalon.modern.js去掉HTML Imports的实现,收拾大写变小写引发的BUG
- fix date filter BUG
- fix 内部onTree BUG,可能会引起死循环,详见这里
- fix html filter,详见 这里
- 优化 CG回收 ms-if ms-hover ms-active 都加上rollback方便移除绑定
- onTree在触发里面的事件时,针对change blur事件需要对document.activeElement进行检测
- 修正ms-class中的占位符的生成方式
- 修正avalon.fn.data取某些对象属性时被序列化的BUG
- 修正IE6-8下ms-css-float BUG
- 优化 计算属性,它再也不用收集视图刷新函数与更新视图了
- ms-repeat、 ms-each、 ms-with现在完全按照供销渠道那一套来写了, 所有代理VM的产生、消费、回收,存放通过xxxProxyFactory、xxxProxyAgent、 recycleProxies、xxxProxyPool实现。详见这里
此外,avalon已经使用新官网,原《入门教程》也使用新风格重写,大家有必要重看一下 《入门教程》。
迷你MVVM框架在github的仓库https://github.com/RubyLouvre/avalon
avalon的新UI库地址OniUI, 多达42个UI,强大的换肤功能
朋友们用avalon做的东西
- 移动应用:读酷
- chrome插件:饭否客户端
- 为知笔记
- 金山WPS office 会员中心
- 稻売儿
- 桑夏资产官网
- 企业级应用:超博CRM客户关系管理系统(帐号:crm_ceo 密码:nncb_ceo)
- uliweb Python框架与avalon的组合示例
- avalon+jQuery实现域名注册查询
- 路由器示例
- 边锋活动页
- 记者考试题
- 基于avalonJS实现的2048游戏
- 墨麒OA (user: linwei, password: 654321)
最近,已经有三个百度部门(百度移动,百度商业,百度推广)在用avalon了,你们也快快加入吧!