Catfan喵友首个开源项目——Qatrix,轻量级高性能的JavaScript架构

2012-04-02 17:35:12 +08:00
 catfan


相信在v2ex的大部分同学都应该听过Catfan喵友( http://catfan.me )吧,也相信有不少人也注册一个账户,甚至是忠实用户(╰( ̄ω ̄) 出来打声招呼吧~喵)

Qatrix是继旗下的Mu6(http://mu6.me)社交音乐分享网站后,在Catfan两周年之际发布的一个开源新项目。是在Catfan开发过程中经过知识不断积累和研究,独立开源出来的项目。

Qatrix Javascript架构有如下的特点:

硬件加速的动画效果(Hardware Accelerated Animation)
基于CSS3 transition的功能,使用Native code处理动画效果,并且具有启用硬件加速的特性,动画效果将比以往其它的JavaScript架构里单纯基于JavaScript的更加流畅。

高性能代码(High performance code)
专门为性能做前提为优化和设计,尽可能使用Native code进行处理,让其运行更有效率。

易学易用(Easy-to-learn)
function的命名多数与jQuery类似,简单易记,并且容易理解,不需要学习太多新的概念,便能快速入门。

麻雀虽小五脏俱全(Incredible size)
包含60+个实用功能,却只有5KB的文件大小(gzipped)。不会明显增加载入的时间。

协议:最宽松的MIT license
兼容性:IE6-10, Chrome, Firefox2+, Safari3+, Opera9+

Qatrix之前已经经过与国外的开发者讨论多次后,经过多个版本的修正和优化,目前的版本为0.8.9,基本功能已经定下,剩下的就是BUG的修复。下一版本将会比较公开地发布。

目前Qatrix一直作为Catfan和Mu6的JavaScript核心架构存在,更新和修正速度都会很及时的,可以放心。

相关链接,欢迎关注和讨论:)
官方网站: http://qatrix.com
GitHub: https://github.com/qatrix/Qatrix
性能测试: http://qatrix.com/benchmark

PS:还是借此机会简单公开说明一下,虽然经常到处解释,但总是有误解:Catfan喵友并不是什么轻博客,类Tumblr的东东,两者的基本设计概念与操作方式差别本来就很大!它就是一个博客社交网站,简单点说就是社交网站,就这样,不要搞错了:)
10610 次点击
所在节点    分享创造
62 条回复
kernel1983
2012-04-05 18:13:26 +08:00
说说代码风格吧, 一会用tab, 一会用空格
catfan
2012-04-05 18:48:35 +08:00
@zythum 也许可以把你的想法在Github上fork一下,有一定贡献的话,日后会在网站中列出来的:)
tamamaxox
2012-04-05 19:55:55 +08:00
@catfan 不是有一个$id吗,怎么说每次都操作呢.而且,做一个正则就可以分类了.
liyandong
2012-04-05 19:59:08 +08:00
@Livid 貌似Http、hTtp另类连接识别还没处理好吧^_^
zythum
2012-04-05 21:49:32 +08:00
@tamamaxox 正则匹配还是很慢的。你看如果用了正则是不是应该很合情合理的吧css选择器功能也坐上...
tamamaxox
2012-04-05 22:11:03 +08:00
@zythum 我看见文档里面就有选择器了
tamamaxox
2012-04-05 22:16:06 +08:00
其实我的感觉就是,格式能够尽可能的相同的话,人家把代码移植到这个框架上面,也能方便一点吧.毕竟用这个框架讨的是轻量.不是格式.
panlilu
2012-04-05 22:27:18 +08:00
ie6!哇...就冲这个..我要试试!
bigzhu
2012-04-05 22:34:49 +08:00
除了比 jquery 快,还有什么特点?有没有现成的 UI 库?
notedit
2012-04-05 22:45:08 +08:00
@catfan mu6.me 有可以改进的地方,上传音乐后可以立即生成一个链接,而没有必要完全上传完在生成链接
catfan
2012-04-06 19:30:43 +08:00
@tamamaxox 每一个framework的设计,概念和写法都不一样,各自有各自的特点,代码不可能全部兼容。

@bigzhu 特点大部分都列出了,当然还包含了一些实用的功能。UI库日后可能会提供。

简单说明Qatrix的选择器:

最简单最快的ID选择器:
$()

集合选择器:
$id()
$class()
$tag()

最慢,但最强大的CSS选择器:
$select()

性能从高至低,基本上能满足大部分元素选择的需求。按需使用便可。
catfan
2012-04-06 19:37:52 +08:00
首个稳定版0.9将会在近期出来,目前正在各种加紧修复和改进中。需要用此framework的同学可以先hold一下:)
leecade
2012-04-07 16:05:37 +08:00
勇气可嘉
sunshineg
2012-04-07 16:06:19 +08:00
赞 +1
level_225
2012-04-16 15:24:27 +08:00
$new('div', {
'id' : 'box_wrap',
'className' :'box-popup',
'css' : {
'css': {
'width': '720px',
'height': '240px',
'overflow': 'hidden',
'z-index': '9000',
'position' : 'absolute',
'margin-top' : '-170px',
'margin-left' : '-465px',
''
}
}
});

用 $new 创建带 style 属性的元素感觉有些别扭,要多一层 css 对象
vivalon
2012-05-11 14:24:01 +08:00
突然发现我还有账号……貌似好久之前就注册了
catfan
2012-05-27 20:53:11 +08:00
现在更新到了0.9.5版本了,此版本优化了更多地方的性能并且进一步缩小文件的体积。推荐大家更新~~

http://qatrix.com/download
zythum
2012-05-27 21:24:31 +08:00
感谢喵大。
喵大 下面是使用了之后的一些建议。
1. $event.metaKey 中cmd键一直没有用啊。
2. 还有个意见是$event.key。朱一有个建议是加入一个$event.keyWord之类的。直接返回字母,而不是keyCode感觉会更使用一些。然后是兼容的禁止事件冒泡,禁止浏览器默认行为这些。
3. 时间的delegetedEvent感觉还是需要的。有的话会轻松不少。
4. 然后一些className的add,remove第一个参数是数组啊之类的可有可无有了最好的这些。

感觉qatrix还是不错的,喵大辛苦了。
朱一接下去应该会一直会用下去。虽然现在用qatrix做的一个东西暂时是搁置了。
至少目前还没找到比qatrix更加适合的轻量级的解决方案。
zythum
2012-05-27 21:26:30 +08:00
@zythum
还有0.9.5貌似加了挺多改进的。刚才去喵了下。 感谢
catfan
2012-05-27 22:11:23 +08:00
@zythum 谢谢您的建议。如果合适的话,日后会在新的版本中添加功能:)

该项目还在不断完善中。

如发现BUG或想提交代码的话,可以直接在GitHub上submit一下:-D

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/31199

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX