去年我的总结是有关我的选择器发展史。2012年我把精力放在三个方面,加载器,动画引擎,MVVM,这都是与我的框架有关的。基本上,得益于这三方面的着力,我的框架已经非常成熟。2013年我就可以挥军指向UI库了。
加载器,在我的博客中,以“我的模块加载系统”起头的一系列博文,已经发展到v21。v19之前是使用iframe方式实现,兼容性与稳定性更好,并且唯一能对opera12之前不检测onerror所引发的问题。v20使用单文档加载,调试能力更胜一筹。由于opera下的死链问题可以改用其他浏览器检测到,决定以后使用v20的新方案。我的模块加载器有据可考的时间是2011.4.12发布的v5,也算国内历史非常悠久的加载器,除了宣传不足外,技术上不输于你们所有叫得出名的加载器。
动画引擎,这是基础库的一个甜点。不同于jQuery基于Promise机制的动画引擎,它是类似于AS3补间式动画引擎,由一个时间轴来管理所有动画,因此对内存非常友好,跑得比jQuery更流畅。因为是由一个时间轴进行管理,实现回滚,中止等操作比jQuery轻松多了。它在核心库中就支持颜色渐变,回滚,旋转等效果,但只需要500行代码。支持jQuery所有特效,并且API完全一致。目前发展到v6。
MVVM,这是搞C#的人应该耳熟能详的东西。这是为我的UI库做准备。目标是实现“操作数据即操作DOM,最小化智能化刷新界面,智能管理状态与异步操作,更易编写与测试”。目前版本为v4。
此外,围绕着mass Framework,今年写了70篇相应的专题博文。各种对JS框架,尤其是对jQuery的改进探究,形成了一整套自己的体系。在模块化的前提后,改进是十分成功与迅速的。今年,由node模块再拆分成node_fix模块,就能大功告成。lang_fix, css_fix, attr_fix, event_fix,这是现存的四个补丁模块,专门用于对付旧式IE。新的实验性质的模块以_neo结尾。有了这些规划,我们便能保证在加载总能发出最小的请求数与享用最新的API带来的好处。即便是合并后,也只是在没有后缀结尾的核心模块与种子模块中进行。
另外对bootstrap的研究也告一段落。UI库将是我以后的发展方向,并借此机会,试水更多HTML5带来的新API,让它更有竞争力。
2012年算是在打桩,2013年开始建大厦了。