迷你MVVM框架 avalonjs 1.3发布】的更多相关文章

迷你MVVM框架 avalonjs 0.95发布 本版本最主要的改进是ms-with 深层绑定的实现,至少,avalon1.0所有重要的feature已经开发完毕,之后就是小补小漏,性能优化了. ms-with进行绑定.对VM的某个对象属性重新赋给它一个对象,那么页面上对应的列表将根据它的键值对重新排列增删,修改它的$val.如果对它的对象属性的某一个键重新赋值 ,只会进行更新操作,详见index21with.html, index22with.html, index23with.html ms…
迷你MVVM框架 avalonjs 0.85发布 本版本对循环绑定做了巨大改进,感谢@soom, @limodou, @ztz, @Gaubee 提供的大量测试文件. fix scanNodes, 在循环绑定(ms-each)扫描元素节点时必须 nextTick,否则旧式IE会忙碌不过来. fix ms-css ,旧式IE style[name] = value, 当value为NaN ,不带单位或不是数值什么会抛异常,需要try catch. 旧式IE下有些元素的innerHTML是只读的,…
迷你MVVM框架 avalonjs 0.82发布 本版本最大的改进是启用全新的parser. parser是用于干什么的?在视图中,我们通过绑定属性实现双向绑定,比如ms-text="firstName", ms-html="sex + '士'", ms-visible="Math.abs(toggle + 2000) >= 20", 我们需要将它们转换为求值函数.我们通过ms-controller="vm"来绑定Vie…
avalon1.2 带来了许多新特性,让开发更轻松!详见如下: 升级路由系统与分页组件. 对ms-duplex的绑定值进行增强,以前只能prop或prop.prop2,现在可以prop["xxx"].prop[prop2].换言之,添加对数组法对子属性的支持.详见这里 ms-duplex支持用JS修改input.value触发oninput事件(实现旧式IE下onpropertychange的功能),实现大量第三方组件都会操作input.value,有了这功能,我们就不需要写额外回调实…
性能得到大幅改良的avalon1.3发布了. 修复$outer BUG 修复IE6-8下扫描加载Flash资源的OBJECT标签时,遇到它既没有innerHTML也没有getAttributeNode的奇葩情况,解决方法是直接忽略它 ms-duplex添加对中文输入法的处理 removeFromSanctuary添加一分支,加强对旧式IE的节点的内存回收 fix 监控数组的set方法无法同步$model BUG 重构avalon.fn.offset方法 fix avalon.fn.data BU…
本版本最重要的特性是引进了AMD规范的模块加载器,亦即原来mass Framework 的并行加载器, 不同之处,它引进了requirejs的xxx!风格的插件机制,比如要延迟到DOM树建完时触发,是使用ready!, 要加载css文件是使用css!css_path. 加载器在移动设备或PC的单页应用不可或缺.根据公司内容的不完全统计,手机等浏览器的性能只是PC的十分之一左右,而且测试对象还是公司的有钱同事的手机,什么IP,三星GALAXY. 在过去的一周,整合angular, requirej…
本版本修了一些BUG与不合理的地方,感谢感谢ztz, 民工精髓, 姚立, qiangtou等人指正. 处理AMD加载 旧式IE下移除script节点内存泄漏的问题 fix firefox 全系列visible,缘由是当节点不在DOM树时,getComputedStyle不精确 fix Object.getPrototypeOf的验证正则 去除excapeRegExp中的捕获 update Function.prototype.bind 针对不同的浏览器选用更快的avalon.nextTick实现…
本版本最大的改进是引入ms-class的新风格支持,以前的不支持大写类名及多个类名同时操作,新风格支持了.还有对2维监控数组的支持.并着手修复UI框架. 重构 class, hover, active, bind绑定 fix parseExpr在IE全系列的BUG.IE全家 Function("return ")出错,需要Function("return ;") 增加对contains方法 的检测,不支持contains方法,则在Node.prototype下用co…
这段时间吸取@limodou, @东灵等人的意见,做了以下改进 重构isArrayLike,提高avalon.each的性能,原来avalon.each是依赖于isArrayLike来判定是循环普通对象还是类数组.isArrayLike是从jQuery扒过来,它内部依赖于getType, isWindow这两个笨重的方法,因此性能不怎么样.新的isArrayLike去掉它们,在avalon.js, avalon.mobile.js各自实现.详见这里 修正计算属性在某些场合不解发$watch回调的…
本版本主要做了如下改进: 优化ms-if的逻辑,现在描述DOM的顺序是 ms-skip, ms-important, ms-controller, ms-if ... 只要元素存在ms-skip 这个绑定属性时,就忽略扫描此元素及子孙.然后是ms-important, ms-controller这 两个与作用域有关的绑定,如果它们指向的VM在avalon.vmodels 不存在时,规则同ms-skip. 最后ms-if,如果ms-if的表达式的结果为true,那么走如下步骤:如果没有插入到DOM…