JavaScriptMVC
JavaScriptMVC 是一套开放原始码的多样化网际网路应用程式框架,以 jQuery 与 OpenAJAX 为基础。JavaScriptMVC 利用 MVC 架构与工具扩展这些函式库,以便开发与测试。由于 JavaScriptMVC 不需要任何伺服器端的配合,因此它可以和任何的网站服务介面与程式语言整合,如 ASP.NET、Java、Perl、PHP、Python 或 Ruby。
开发者 | Justin B. Meyer, Brian Moschel |
---|---|
编程语言 | JavaScript |
操作系统 | 跨平台 |
许可协议 | MIT License[1] |
网站 | www |
历史
JavaScriptMVC 的第一个版本是在2008年5月释出。稳定版的 JavaScriptMVC 2.0 在2009年6月释出,并以 jQuery 为基础。主要开发目标为维持程式码的简短和专注在它独特的功能上。3.0版本在2010年12月释出。而从 JavaScriptMVC 中所独立出来的 MVC 架构“CanJS”则在2012年4月释出。
控制器
控制器(Controller)是由许多函式所组成,这些函式会在适当的事件发生时被呼叫。函式名称提供这些函式被呼叫时的描述。只要正确地命名函式,控制器就能够辨认这些函式并在正确的时机呼叫它们。举例来说:
$.Controller('TodosController',{
".todo mouseover": function(el, ev){
el.css("backgroundColor","red")
},
".todo mouseout": function(el, ev){
el.css("backgroundColor","")
},
"#create_todo click" : function(){
this.find("ol").append("New Todo");
}
});
在控制器中也可以处理 OpenAjax 事件,例如:
$.Controller('TodosController',{
"main.test subscribe": function(ev, publisherData){
// TODO: do something
},
"other.event subscribe": function(ev, publisherData){
// TODO: do something
}
});
视图
JavaScriptMVC 使用 EJS 样板来处理控制器里的 HTML 资料并且将它们插入 DOM 中。这些语法是借镜自 ERuby,且与 PHP 或其他伺服器端语言的样板引擎相似。
以“test.ejs”(data = [ "Hello", "World" ])为例:
<ul>
<% for( var i=0, len = data.length; i < len; i++ ) { %>
<li><%= data[i] %></li>
<% } %>
<ul>
这会输出如下的结果:
<ul>
<li>Hello</li>
<li>World</li>
</ul>
模型
模型(Model)类别提供了组织应用程式资料层级的基本功能。
$.Model('Todo',{
findAll: '/todos',
findOne: '/todos/{id}',
create: '/todos',
update: '/todos/{id}'
destroy : '/todos/{id}'
},{});
测试
JavaScriptMVC 还提供了一套完整的测试外挂,支援模型的单元测试,以及需要处理事件驱动结构的功能性测试。测试工具可以在 Rhino 引擎的命令列模式执行。
参考资料
- ^ Javascipt MVC license. jupiterjs. [16 April 2012].[永久失效链接]