Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/RubyLouvre/avalon
Browse files Browse the repository at this point in the history
Conflicts:
	avalon.js
  • Loading branch information
ilife5 committed Nov 18, 2014
2 parents eb57888 + a57bfbf commit 35f1d7e
Show file tree
Hide file tree
Showing 39 changed files with 14,123 additions and 7,898 deletions.
20 changes: 0 additions & 20 deletions MIT-LICENSE.txt

This file was deleted.

69 changes: 37 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,40 @@
当下的前端开发就是一边填坑一边写业务中进行。avalon的诞生改变了这一切,让我们摆脱DOM的掣肘,专注于需求本身,将可变的数据与操作数据的方法封装成模型。
在更高的层次上组织代码,提高软件的可维护性,可扩展性和可重用性。</p>
<hr>
<ul>
<li>avalon.js 兼容IE6,及标准浏览器</li>
<li>avalon.modern.js 则只支持IE10及其以上版本,及标准浏览器,主流山寨浏览器(QQ, 猎豹, 搜狗, 360, 傲游)</li>
<li>如果想支持触摸屏,请把mobile.js的源码拷贝到avalon.modern.js最后一个})之前,要不会报"Uncaught ReferenceError: W3CFire is not defined mobile.js:313"错误</li>
<li>想使用路由器,可以用<a href="https://github.com/RubyLouvre/mmRouter">mmRouter</a>,
想使用动画,可以用<a href="https://github.com/RubyLouvre/mmAnimate">mmAnimate</a>,
想使用AJAX,可以用<a href="https://github.com/RubyLouvre/mmRequest">mmRequest</a>,
想使用各种控件库,可以用<a href="http://hotelued.qunar.com/">去哪儿网前端架构组搞的OniUI库</a>

</li>
<li>avalon的测试比较庞大,放在独立的仓库中——<a href="https://github.com/RubyLouvre/avalon.test">avalon.test</a>
</li>
</ul>
<h3>优势</h3>
<ul>
<li>使用简单,在HTML中添加绑定,在JS中用avalon.define定义ViewModel,再调用avalon.scan方法,它就能动了!</li>
<li>兼容到IE6(其他MVVM框架,KnockoutJS(IE6), AngularJS(IE9), EmberJS(IE8), WinJS(IE9) ),另有avalon.mobile,它可以更高效地运行于IE10等新版本浏览器中</li>
<li>没有任何依赖,不到4000行,压缩后不到50KiB</li>
<li>支持管道符风格的过滤函数,方便格式化输出</li>
<li>局部刷新的颗粒度已细化到一个文本节点,特性节点</li>
<li>要操作的节点,在第一次扫描就与视图刷新函数相绑定,并缓存起来,因此没有选择器出场的余地。</li>
<li>让DOM操作的代码近乎绝迹</li>
<li>使用类似CSS的重叠覆盖机制,让各个ViewModel分区交替地渲染页面</li>
<li>节点移除时,智能卸载对应的视图刷新函数,节约内存</li>
<li><strong>操作数据即操作DOM</strong>,对ViewModel的操作都会同步到View与Model去。</li>
<li>自带AMD模块加载器,省得与其他加载器进行整合。</li>
</ul>
<div><img src="https://raw2.github.com/RubyLouvre/avalon/master/examples/images/ecosphere.jpg" width="400" height="640"></div>
<h3>学习教程</h3>
<p><a href="http://www.html-js.com/article/column/234"> avalon学习教程</a></p>
<p>其他教程: <a href="http://limodou.github.io/avalon-learning/zh_CN/index.html">《avalon-learning 教程》</a>→<a href="http://www.cnblogs.com/rubylouvre/p/3181291.html">《入门教程》</a>→
<a href="http://vdisk.weibo.com/s/aMO9PyIQCnLOF/1375154475">HTML5交流会有关avalon的PPT</a>→<a href="http://www.cnblogs.com/rubylouvre/p/3385373.html">《avalon最佳实践》</a>
</p>
* [avalon](https://github.com/RubyLouvre/avalon)现在有三个分支:avalon.js 兼容IE6,及标准浏览器;avalon.modern.js 则只支持IE10及其以上版本,及标准浏览器,主流山寨浏览器(QQ, 猎豹, 搜狗, 360, 傲游) ;avalon.observe是用于研究es6的新特性,使用Object.observe实现的;
* [avalon](https://github.com/RubyLouvre/avalon)拥有强大的组件库,现在由去哪儿网前端架构组在维护与升级,[这里](http://ued.qunar.com/);首先是三柱臣,想使用路由器,可以用[mmRouter](https://github.com/RubyLouvre/mmRouter), 想使用动画,可以用[mmAnimate](https://github.com/RubyLouvre/mmAnimate), 想使用AJAX,可以用[mmRequest](https://github.com/RubyLouvre/mmRequest); 其是是OniUI,树组件差不多开发完毕,届时就有一个拥有2个Grid,1个树,1 个验证插件等总数近50个UI组件的库了。
* avalon的测试比较庞大,放在独立的仓库中——[avalon.test](https://github.com/RubyLouvre/avalon.test)

优势
======
* 使用简单,在HTML中添加绑定,在JS中用avalon.define定义ViewModel,再调用avalon.scan方法,它就能动了!
* 兼容到 **IE6** (其他MVVM框架,KnockoutJS(IE6), AngularJS(IE9), EmberJS(IE8), WinJS(IE9) ),另有avalon.mobile,它可以更高效地运行于IE10等新版本浏览器中
* 没有任何依赖,不到5000行,压缩后不到50KiB
* 支持管道符风格的过滤函数,方便格式化输出
* 局部刷新的颗粒度已细化到一个文本节点,特性节点
* 要操作的节点,在第一次扫描就与视图刷新函数相绑定,并缓存起来,因此没有选择器出场的余地。
* 让DOM操作的代码近乎绝迹
* 使用类似CSS的重叠覆盖机制,让各个ViewModel分区交替地渲染页面
* 节点移除时,智能卸载对应的视图刷新函数,节约内存
* **操作数据即操作DOM**,对ViewModel的操作都会同步到View与Model去
* 自带AMD模块加载器,省得与其他加载器进行整合

学习教程
======
* [avalon学习教程](http://www.html-js.com/article/column/234)
* [avalon-learning](http://limodou.github.io/avalon-learning/zh_CN/index.html)
* [入门教程](http://www.cnblogs.com/rubylouvre/p/3181291.html)
* [HTML5交流会有关avalon的PPT](http://vdisk.weibo.com/s/aMO9PyIQCnLOF/1375154475)
* [avalon最佳实践](http://www.cnblogs.com/rubylouvre/p/3385373.html)


运行github中的示例
=====
将项目下载到本地,里面有一个叫server.exe的.Net小型服务器(可以需要安装[.Net4.0](http://dl.pconline.com.cn/download/54972.html)),
点击它然后打开里面与index开头的HTML文件,一边看运行效果,一边看源码进行学习。
![Alt text](https://raw.github.com/RubyLouvre/avalon/master/examples/images/example.jpg)

<h3>运行github中的示例</h3>
<p>将项目下载到本地,里面有一个叫server.exe的.Net小型服务器(可以需要安装<a href="http://dl.pconline.com.cn/download/54972.html">.Net4.0</a>才能运行),
点击它然后打开里面与index开头的HTML文件,一边看运行效果,一边看源码进行学习。</p>
Expand Down Expand Up @@ -133,3 +134,7 @@ java -jar compiler.jar --js avalon.modern.js --js_output_file avalon.modern.min.
- 自带过滤器
- AMD加载器
- DOMReady

<h3>LOGO来历</h3>

http://tieba.baidu.com/p/1350048586
Loading

0 comments on commit 35f1d7e

Please sign in to comment.