V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
catfan
V2EX  ›  分享创造

历时半年Qatrix.js 1.1终于发布了,带来秒杀级的模板引擎,以及数个强化功能。

  •  
  •   catfan · 2013-06-07 22:17:37 +08:00 · 6422 次点击
    这是一个创建于 4192 天前的主题,其中的信息可能已经有所发展或是发生改变。
    历时差不多半年的更新,Qatrix终于迎来第二个重大版本的更新了。

    这次更新除了新增全新的事件代理处理模式,还增加了$require异步模块载入的功能(也可载入CSS),以及各种的优化。

    最重点的是,这次还带来了性能极为恐怖的$template模板引擎,兼容简单Mustache的语法,但效率远超其它同类的库。

    可以通过这里测试一下:

    http://jsperf.com/dom-vs-innerhtml-based-templating/735


    文件体积的话,很对不起,因为增加了这么多的功能,所以从原先的5KB变成现在的6KB了,足足增加了1KB(gzip),呵呵_(:з」∠)_

    官方网站: http://qatrix.com
    19 条回复    1970-01-01 08:00:00 +08:00
    takwai
        1
    takwai  
       2013-06-07 22:25:05 +08:00   ❤️ 1
    腾讯团队这个模版引擎也挺不错…… http://aui.github.io/artTemplate/
    zorceta
        2
    zorceta  
       2013-06-07 22:56:14 +08:00   ❤️ 1
    @takwai Released under the MIT, BSD, and GPL Licenses
    好乱
    breeswish
        3
    breeswish  
       2013-06-07 23:08:59 +08:00 via Android
    赞一个!话说,不知qatrix css selector在ie下效率如何?以前粗略地看过好像是用了某个好奇怪但很有创意的实现>_<?司徒正美的那个选择引擎很高效的说~求implement
    catfan
        4
    catfan  
    OP
       2013-06-07 23:21:57 +08:00
    @breeswish 在浏览器支持的情况下,直接利用原生的document.querySelectorAll,效率就不用我说了。在低版本的时候利用了非常奇怪的方法来实现,利用CSS本身的选择器来选择,虽不算是效率最高,兼容性也就CSS2的水平,但是是用了最少的代码来实现,而且,还是基于原生的浏览器的CSS选择器,性能绝对比正则匹配来得强。

    PS:Qatrix同样用了非常奇怪的方法来让IE6支持localStroage。
    breeswish
        5
    breeswish  
       2013-06-07 23:28:18 +08:00 via Android
    @catfan 感谢…不过其实在现在这种网络下把整个选择器implement一下也不会耗费多少时间 ^_^ 而且有了模块加载器以后就可以针对ie678选择性加载了~

    我还是觉得统一一下选择器比较好……不然其他浏览器下css3用得正欢到了ie6下跪了找了半天发现原来根本不支持这么玩会有点蛋疼…
    catfan
        6
    catfan  
    OP
       2013-06-08 10:55:32 +08:00   ❤️ 1
    @breeswish Er..还打算下一个版本取消对IE6-7的支持呢,这样可以直接统一选择器,并且代码也能减少很多。尽管为兼容IE6-7写出了很多非常hacky有意思的code。
    breeswish
        7
    breeswish  
       2013-06-08 19:58:50 +08:00
    @catfan 额……求继续支持
    NemoAlex
        8
    NemoAlex  
       2013-06-08 20:24:08 +08:00
    @catfan 建议维护一个支持渣 IE 的分支版本
    catfan
        9
    catfan  
    OP
       2013-06-10 10:16:48 +08:00
    @breeswish
    @NemoAlex

    IE6的份额越来越低了,IE7更低。加上连jQuery都取消支持了,Qatrix也要在消灭IE6/7上贡献一份力量:D
    January
        10
    January  
       2013-06-10 10:20:41 +08:00
    再赞一个!
    alexrezit
        11
    alexrezit  
       2013-06-10 10:25:18 +08:00
    @takwai
    @zorceta
    很怀疑他们到底能不能区分各个 License 的区别.
    catfan
        12
    catfan  
    OP
       2013-06-12 19:52:46 +08:00
    @alexrezit 是想仿jQuery的多协议兼容吧,不过现在jQuery都已经统一使用MIT了。
    zhizhixu
        13
    zhizhixu  
       2013-06-26 13:21:12 +08:00
    还是在你自己的主题下留言吧~Catfan、Mu6、Qatrix和Medoo,一个人负责四个项目的所有,这太辛苦和牛掰了吧。为什么不组个队伍创业呢,或者去上个班什么的
    WarWithinMe
        14
    WarWithinMe  
       2013-06-27 11:10:26 +08:00
    其实如果handlebar之类的模板编译了应该速度差不多吧。因为编译了之后,他们跟你这个都是一个function的感觉。。
    catfan
        15
    catfan  
    OP
       2013-06-30 00:09:21 +08:00
    @WarWithinMe 那个页面测试的都是编译后的模板,关键是编译出来的代码的性能。
    breeswish
        16
    breeswish  
       2013-06-30 12:34:48 +08:00 via Android
    @catfan 话说qatrix()有没有类似jquery那样的triggerevent. 比如.click()?
    catfan
        17
    catfan  
    OP
       2013-06-30 15:58:16 +08:00
    @breeswish 刚好计划在下一版本中加上:)
    hitsmaxft
        18
    hitsmaxft  
       2013-06-30 16:58:21 +08:00
    @catfan 这性能测试不科学啊 =. =

    毕竟其它的模板引擎多少会带上一些escape之类的负担.

    有打算加上escape的不?
    目前的功能简单情况可以应付一下
    breeswish
        19
    breeswish  
       2013-06-30 19:10:29 +08:00 via Android
    @catfan 期待 ^_^ 现在已经在用了~觉得很不错 另外推荐加入tinymce自带的DOM库里那种批量创建dom的支持 (只需很小改动就能用在qatrix里)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4107 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:29 · PVG 13:29 · LAX 21:29 · JFK 00:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.