迷你MVVM框架 avalonjs1.5.2 发布】的更多相关文章

经过2个小版本的试水, avalon1.5这个全新的架构也终于成熟了. 首先是组件的配置项,名字改了不少,让大家都满意. ms-duplex, ms-include, ms-if等指令的BUG修复. 一些oniui组件也成功转换成新组件形式,总结一些套路. 当然,最后我是想像react那样不使用 setTimeout就能实现双缓冲技术.这个会加大投入学习react的源码. 本周周六,我在北京苏州街的西海国际有场分享,是说自定义标签,分享一下avalon的新组件是怎么写的. https://git…
迷你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…
本版本最重要的特性是引进了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…
本版本主要是性能优化与 fix BUG,改进如下: 处理notifySubscribers中的BUG,它在标准浏览器不会移除那些无用的视图刷新函数.详见这里 重构modelBindling.SELECT方法中的updateView, 感谢AngularJS中文社区(278252889)中的@basecss²º¹³指正,详见这里 处理eachIterator方法中第一个locatedNode 求值,详见这里 对监控数组进行优化,现在所有监控数组都共用一套方法,大大节省内存,详见这里 抽象出regi…