Avalon 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Avalon 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开发厂商
地区 国产
提 交 者 qinerg
适用人群 未知
收录时间 2013-07-18

软件简介

avalon是一个功能强大,体积小巧的MVVM框架。它遵循“操作数据即操作DOM”的理念,让你在代码里基本见不到一点DOM操作代码。DOM操作全部在绑定后,交给框架处理。相当后端有了ORM一样,不用你手写SQL,提高生产力!

与其它js框架相比,同样实现著名的todos功能,(参见todomvc官网),在所有MV*的实现中avalon是让用户写代码最少的。

与其他MV*相比,它不仅轻量,最低支持到IE6,而且性能是最好的。

优势:

  • 使用简单,在HTML中添加绑定,在JS中用avalon.define定义ViewModel,再调用avalon.scan方法,它就能动了!

  • 兼容到IE6(其他mvvm框架, knockoutjs IE6, angularjs IE7, emberjs IE8, winJS IE9 )

  • 没有任何依赖,只有72K,压缩后22K

  • 支持管道符风格的过滤函数,方便格式化输出

  • 局部刷新的颗粒度已细化到一个文本节点,特性节点

  • 要操作的节点,在第一次扫描就与视图刷新函数相绑定,并缓存起来,因此没有选择器出场的余地。

  • 让DOM操作的代码近乎绝迹

  • 使用类似CSS的重叠覆盖机制,让各个ViewModel分区交替地渲染页面

  • 节点移除时,智能卸载对应的视图刷新函数,节约内存

  • 操作数据即操作DOM,对ViewModel的操作都会同步到View与Model去。

与其他框架比较:

  • 它体积更少,在主要的几个MVVM框架(拥有双向绑定机制),knockout是三千多行,angularjs 1.6万, emberjs2-3万行, winjs是几M, kendoui是几M!

  • 兼容情况,kendoui与 knockoutjs IE6, angularjs IE7, emberjs IE8, winJS IE9

  • 让用户写代码更少(可见我给出的todos)

  • 上手难度,与knockout差不多,但借鉴了angularjs的,更为易用。

  • 与knockoutjs, angular, winjs一样是使用动态模板,至少保持第一屏数据是真实的,对SEO友好。

  • 源码也是它们中最易读的。简单的代码也意味着扩展调试等容易。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (23)

加载中
R.I.P
08/07 14:48
回复
举报
谁有avalog开发文档
07/27 10:47
回复
举报
软件首页提示 “由于存在网络安全性问题,该站点已停止访问。”
05/20 14:56
回复
举报
是钟钦成么?
04/14 23:54
回复
举报
兄弟走好
04/14 19:30
回复
举报
唉……
04/03 11:40
回复
举报
诶啥呢,谁走了
04/13 16:58
回复
举报
这个软件的作者
04/13 17:06
回复
举报
年纪轻轻,就这么走了,一路走好吧,兄弟。
04/02 15:20
回复
举报
兄弟,一路走好
04/02 15:12
回复
举报
兄弟!再见!
04/02 14:46
回复
举报
又少了位大神,一路好走
04/01 20:05
回复
举报
更多评论
发表了资讯
2017/01/05 13:56

Avalon 2.2.4 发布,迷你易用的 MVVM 框架

avalon 2.2.4 发布了。avalon是一个功能强大,体积小巧的MVVM框架。它遵循“操作数据即操作DOM”的理念,让你在代码里基本见不到一点DOM操作代码。DOM操作全部在绑定后,交给框架处理。相当后端有了ORM一样,不用你手写SQL,提高生产力!支持ie9以下的前端mvvm框架首选,用于PC页面开发是不二选择。本次更新如下: 修正I...

9
18
发表了资讯
2016/06/17 00:00

Avalonjs 2.0.5 发布,迷你易用的 MVVM 框架

Avalonjs 2.0.5 发布,此版本更新内容如下: 本版本最重要就是解决多次渲染的问题,这带来了性能的极大提高! ------------------- 组件里 onInit 会加载多次(延迟到diff) 修复ms-for指令有重复渲染的情况 修正css, attr在IE6-8的BUG,缘故是在diff里面对VBscript进行for in循环了 修正 insertBe...

14
23
发表了资讯
2015/09/21 00:00

avalonjs 1.5.2 发布,迷你 MVVM 框架

avalon经过几年以后,已成为国内一个举足轻重的框架。它提供了多种不同的版本,满足不同人群的需要。比如avalon.js支持IE6等老旧浏览器,让许多靠政府项目或对兼容性要求够高的公司也能享受MVVM的乐趣。avalon.modern.js支持IE10以上版本,优先使用新API,性能更优,体积更少。avalon.mobile.js在avalon.modern的基础提供...

10
45
发表了资讯
2015/08/17 00:00

Avalonjs 1.4.6 发布,迷你易用的 MVVM 框架

Avalonjs 1.4.6 发布,此版本更新内容如下: 修复对flexbox的CSS属性支持 fix IE6-8 VBSCRIPT 对象的D,P属性遍历不出来的BUG fix visible BUG 去掉ms-repeat过火的优化 fix ms-html属性绑定错误生成text binding的BUG fix解决$model层次依赖丢失 公开openTag和closeTag fix ms-class BUG 重构parseExprProxy fix parser...

2
15
发表了资讯
2015/05/04 00:00

avalonjs 1.4.2 发布,迷你MVVM框架

迷你MVVM框架 avalonjs 1.4.2 发布,avalon是一个功能强大,体积小巧的MVVM框架。它遵循“操作数据即操作DOM”的理念,让你在代码里基本见不到一点DOM操作代码。DOM操作全部在绑定后,交给框架处理。相当后端有了ORM一样,不用你手写SQL,提高生产力! 新版本改进内容包括: 修正parseHTML 对非标签类型的字符串解析失败...

17
39
发表了资讯
2015/01/16 00:00

迷你 MVVM 框架 avalonjs 1.3.9 发布

本次升级,avalon改进了许多内部方法,大大提升性能,并且带来异步刷新视图的新功能。 ms-html内部不再使用异步 head元素中的avalon元素加入ms-skip指令 重构计算属性,现在超级轻量化 重构CG回收,不会每次都全部检测所有绑定对象 重构内部方法isArrayLike,更好的判定非负整数 重构number过滤器 重构widget的节点回收,...

10
57
发表了资讯
2014/10/14 00:00

迷你 MVVM 框架 avalonjs 1.3.6 发布

本版本是一次重要的升级,考虑要介绍许多东西,也有许多东西对大家有用,也发到首页上来了。 本来是没有1.36的,先把基于静态收集依赖的1.4设计出来后,发现改动太多,为了平缓升级起见,才减少了一部分新特性,做成1.36。因此是先有1.4,才有1.36。 本版本针对公司(去哪儿网,毕竟是带薪在公司里搞这框架)的访问浏览器...

10
31
发表了资讯
2014/07/13 00:00

迷你MVVM框架 avalonjs 1.3.2 发布

时隔一个月,avalon的新版本终于出来了,本次更新带来强大的模块间通信机制,其他就往常一样FIX BUG。 在文本绑定里,IE会对流离于DOM树外的文本节点的data属性赋值报错,需要添加一层判定 派发事件的逻辑,由DOC.createEvent("Event")必成DOC.createEvent("Events") 添加一个反XSS的过滤器sanitize 重构事件系统,暴露e...

2
34
发表了资讯
2014/02/21 00:00

迷你MVVM框架 avalonjs 1.2 发布

avalon1.2 带来了许多新特性,让开发更轻松!详见如下: 升级路由系统与分页组件。 对ms-duplex的绑定值进行增强,以前只能prop或prop.prop2,现在可以prop["xxx"]、prop[prop2]。换言之,添加对数组法对子属性的支持。详见这里 ms-duplex支持用JS修改input.value触发oninput事件(实现旧式IE下onpropertychange的功能)...

21
80
发表了资讯
2013/09/23 00:00

迷你MVVM框架 avalonjs 0.96发布

本版本主要是性能优化与 fix BUG,改进如下: 处理notifySubscribers中的BUG,它在标准浏览器不会移除那些无用的视图刷新函数。详见这里 重构modelBindling.SELECT方法中的updateView, 感谢AngularJS中文社区(278252889)中的@basecss²º¹³指正,详见这里 处理eachIterator方法中第一个locatedNode 求值,详见这里 对...

6
14
发表了资讯
2013/07/20 00:00

迷你MVVM框架 avalonjs 0.9发布

本版本最大的改进是引进了ms-with绑定,现在可轻松遍历对象了。 改进列表如下: 重新使用082的scanNodes方法,因为有关旧式IE下UI渲染锁死的问题已经解决了。 优化each绑定与Collection 添加CSS3 animationend事件支持 添加ms-with绑定 fix IE9-10获取option元素的value的BUG 改良 AMD加载器与jQuery这些在内部使用了全局...

6
13
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/06/29 15:32

Avalon Framework

Apache Avalon has closed. Apache Avalon began in 1999 as the Java Apache Server Framework and in late 2002 separated from the Apache Jakarta Project to become its own ASF top level project. Apache Avalon provided Java software for component and container programming and pioneered the use of desig...

0
0
发表于大前端专区
2016/11/18 21:27

AVALON2.2 发布

经过avalon2.0.*与avalon2.1.*这30多个小版本的迭代,avalon终于实现自己一套html parser, 虚拟DOM系统与两个数组的精致diff算法,再结合mobx的一些源码阅读所得,终于催生了avalon2.2。

0
0
发表于大前端专区
2019/02/28 23:00

【MVVM】- Avalon 过滤器

ms-controlle作用:当页面事先加载而页面并未完全渲染完成时自动隐藏目标显示域,待数据完全显示时avalon会自动取消样式,达到遮挡初始静态页面的显示效果 css样式 .ms-controller{ visibility:hidden; } 界面 ...

0
0
发表了博客
2018/05/10 17:18

avalon的过滤器的使用

uppercase 将字符串全部大写 vm.aaa = "aaa" <div>{{@aaa | uppercase}}</div> lowercase 将字符串全部小写 vm.aaa = "AAA" <div>{{@aaa | lowercase}}</div> truncate  对长字符串进行截短,有两个可选参数 , number,最后返回的字符串的长度,已经将truncation的长度包含在内,默认为30。 truncation,       ...

0
0
发表于大前端专区
2015/03/18 12:28

avalon框架学习

[详细api][1] ###avalon特性 * 双向绑定,方便编程 * 比angular兼容性好 * 体积小巧、跟适合移动端 [1]: http://avalonjs.github.io ###目前发现的小问题 自带的加载器支持格式有限,比如 require(【】,function(){})

0
0
发表了博客
2018/11/16 22:56

Avalon 总线 时序 介绍

Avalon 总线广泛应用于外设和软核或者硬核交互,其时序简单明了,也非常适合用来作为划分模块的接口信号。本文结合quartus 关于 avalon 总线英文原版做简单介绍,重点理解时序即可。欢迎大家一起交流,Q群:912014800。 1.Avalon的时钟和复位 这里没什么好讲的,时钟信号略,而对于复位信号,可能有三个选择: NONE: 复位...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2016/07/19 10:42

avalon 方法的调用

var ava = avalon.define({ $id: "table", table_value: [], check_list: [], select: function(i) { } }); js 中如何调用select方法?

1
0
发表了问答
2016/03/29 11:41

很是纠结,jQuery插件那么多,但是写起来各种笨重,用还是不用好?

相信写过jQuery,用过jQueryUI、jqGrid等插件的伙伴们应该都有一种感觉吧, 虽然说jQuery生态中各种插件都很完善,也很强大,写起来也不难,只是代码会比较多。 弄个表格要各种配置,弄个按钮也要各种配置,这样一来就很烦。 到底用还是不用了呢。

4
0
发表了问答
2015/01/20 21:23

avalonJS问题

@呢喃的猫咪 你好,想跟你请教个问题: avalonJS里 avalon.define = function(id, factory) { var $id = id.$id || id if (!$id) { log("warning: vm必须指定$id") } if (VMODELS[$id]) { log("warning: " + $id + " 已经存在于avalon.vmodels中") } if (typeof id === "object") { var model = modelFactory(id) } els...

2
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
23 评论
380 收藏
分享
返回顶部
顶部