avalon1.2的性能优化风暴很快就告一段落,入职也快一个月了,许多乱七八糟的事也少了下来,估计未来一个月会有许多好东呈现给大家。

首先是一个性能检测工具。由于MVVM是将原本由人脑干的事,转到各种绑定上,因此性能是各MVVM框架一直关注的头等问题。这时性能检测工具就帮上大忙了。

内部编译器的改进。这分几部分,一是抽取变量,二是确定变量与某个VM的关系,最后是转换为求值函数。上个月基本上完后了后两部分。第一步自0.7后基本没动,最近几天内部悄悄做了一个新的parser,还在测试中,待稳定下来,则加入到新版本中。这将会大大提高扫描速度。

ms-widget的重构。将一个普通的元素节点变成一个功能齐备的控件是一个美妙的特性,这是所有MVVM框架都必需装备的杀手锏。但无法说得多么神奇,它内部的实现与之前的JQ对象没多区别,就是要传入要操作的元素节点以及一些配置项。由于之前过于追求自由,不对用户进行各种限制,结果用户有点不知所措,就算出了问题也不好定位。其次,之前一直缺乏对控件的生命周期管理,容易出现内存泄漏的危险。下面是对新ms-widget的一些规划,希望能脱骨换胎,浴火重生:

  • 在控件没有初始化时,不对控件内部进行扫描,确保从外到内的扫描原则
  • 为了完成第一原则,以及防止控件加载前其内部的{{}}被显示出来,决定将控件所在的元素临时移出DOM树,用一注释节点占位
  • 原元素要保持原有的VM链及绑定属性, 方便以后还原(这个已经实现)
  • 控件VM必须有一个$init方法,用于生成它的视图
  • 控件VM必须有一个$remove方法,用于销毁它的视图(此方法与上面的方法可以多次调用,比如弹出层,允许不断初始化与销毁)
  • 控件模块必须返回控件VM,用于自动销毁控件与控件VM(CG回收)

考虑将avalon.require.text移入核心库。显然随着UI库的扩充,这个模块越来越有用了。相对而言,avalon.mobile的触屏模块将变成一个插件,avalon.mobile或许会改名。次世代avalon.seber也在研发中,它使用了es6的新特性,以期获得更好的性能。目前avalon能在一个大页面上扛住1万个绑定,相对而言angular是2千个。

其实我本人是很讨厌“预览”什么吊人口胃的东西,不喜欢画大饼,但工作忙,很可能会忘掉了这些点子,就公开出来让大家监督我了。另一个,我在公司内部成立了一个小组是专门维护与升级avalon.ui,以期让它能与大阿狸的KISSY小组相抗衡。avalon相对KISSY有一个很大的优势,就是它是一个MVVM框架做底层。怎么描述比较avalon与传统的框架的区别呢?我们大致可以联想一下“自变量”与“因变量”这两个概念。传统框架,包括jQuery,它就是自变量太多,程序员在处理内部类的一些行为时,还要考到来自DOM的用户触发事件,总在几十个类与DOM上进行思维跳跃。avalon的理念是操作数据即操作DOM,这个数据就是VM,总是围绕它进行编程就行了,其他DOM操作,计算属性等等都是因变量,由框架自行处理。人的精力是有限的,因此每一辆汽车才只允许有一个转向盘,你见过有五六个转向盘的车子吗?!目前主流DOM框架就是这吊样,司机在五六个转向盘挥舞双手,因此才有这么多事故(BUG)的发生!最后还是为自己拉些选票吧,希望大家都来试用avalon,在GITHUB上关注(star)一下。

avalon1.3的新特性预览的更多相关文章

  1. C# 9.0 新特性预览 - 类型推导的 new

    C# 9.0 新特性预览 - 类型推导的 new 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大 ...

  2. C# 9.0 新特性预览 - 空参数校验

    C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...

  3. C# 9.0 新特性预览 - 顶级语句

    C# 9.0 新特性预览 - 顶级语句 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们 ...

  4. C# 9.0 新特性预览 - init-only 属性

    C# 9.0 新特性预览 - init-only 属性 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章 ...

  5. Windows Phone 8.1SDK新特性预览

    前言    Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装.本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的 ...

  6. Office 2016 正式发布——新特性预览

    今天微软又发生了一件大事!Windows Office 2016正式发布,这标志着Windows Office 又达到了一个新的里程碑! 全新的Office 发布为Office 365 用户带来了新的 ...

  7. CSS3_新特性预览

    一.强大的CSS选择器 以前我们通常用class. ID 或 tagname 来选择HTML元素,CSS3的选择器强大的难以置信.  它们可以减少在标签中的class和ID的数量更方便的维护样式表.更 ...

  8. Vue.js 3.0 新特性预览

    总结起来,Vue 3 以下方面值得我们期待 : 更快 更小 更易于维护 更多的原生支持 更易于开发使用 完整的PPT:docs.google.com/presentatio… Evan 和 Vue 团 ...

  9. 20天等待,申请终于通过,安装和体验IntelliJ IDEA新UI预览版

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于IDEA的预览版 IDEA会启用新的UI,这事情之 ...

随机推荐

  1. 学习Selenium同学必看

    本文转载 作者:灰蓝蓝蓝蓝蓝蓝链接:http://www.jianshu.com/p/5188cb3ab790來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.更多技术博客 ...

  2. 让Apache支持URL重写

    第一步: 添加.htaccess文件 Rewrite 规则 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_ ...

  3. Epub格式的电子书——文件组成

    epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如 ...

  4. fatal: The remote end hung up unexpectedly解决办法

    $ git config --global http.postBuffer 2428000 git config http.postBuffer 524288000 配置完成后 git pull一下, ...

  5. PHP面向对象(OOP)----访问限制符

    访问控制修饰符指public.protected.private三个关键词来修饰类的成员属性和成员方法,可以有不同的权限 public:[共有的]类里面调用和类外面调用都是可以的 protected: ...

  6. java nio和bio

    理解同步/异步,阻塞/非阻塞:https://juejin.im/entry/598da7d16fb9a03c42431ed3 2:http://qindongliang.iteye.com/blog ...

  7. About HDFS blocks

    一个磁盘有它的块大小,代表着它能够读写的最小数据量.文件系统通过处理大小为一个磁盘块大小的整数倍数的数据块来运作这个磁盘.文件系统块一般为几千字节,而磁盘块一般为512个字节.这些信息,对于仅仅在一个 ...

  8. composer包php-amqplib

    php-amqplib官方文档 url:http://www.rabbitmq.com/tutorials/tutorial-one-php.html #测试demo: url: http://**. ...

  9. UVALive7261(2015ACM/ICPC北京赛区现场赛A)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  10. 30个让人兴奋的视差滚动(Parallax Scrolling)效果网站--转

    视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验.作为今年网页设计的热点趋势,越来越多的网站应用了这项技术.今天这篇文章就与大 ...