您的javaScript代码是如何组织的?它是否遵循像MVC这样的模式,或者其他什么?
我从事一个副业已经有一段时间了,我做得越深入,我的网页就越能变成一个功能齐全的应用程序。现在,我坚持使用jQuery,然而,页面上的逻辑正在增长到需要某种组织,或者说我敢说,“架构”的程度。我的第一种方法是"MVC-ish":
’是一个JSON树,它通过helper进行了扩展
然而,我非常感兴趣的是,其他人是如何构建更丰富的javaScript应用程序的。我对GWT或其他面向服务器的方法不感兴趣……就在接近"javaScript +“的时候
注意:前面我说过javaScript“不是真正的OO,不是真正的功能性”。我认为这分散了所有人的注意力。这么说吧,因为javaScript在很多方面都是独一无二的,而且我来自一个强类型背景,所以我不想强制使用我所知道的用非常不同的语言开发的范式。
发布于 2008-08-28 15:29:52
..but Javascript有许多是面向对象的方面。
请考虑以下内容:
var Vehicle = jQuery.Class.create({
init: function(name) { this.name = name; }
});
var Car = Vehicle.extend({
fillGas: function(){
this.gas = 100;
}
});
我使用这种技术来创建具有自己状态的页面级javascript类,这有助于保持它的可控性(我经常确定可以重用的区域并将其放入其他类中)。
当您有自己的脚本要执行的组件/服务器控件时,但在同一页上可能有多个实例时,这也特别有用。这保持了状态的分离。
发布于 2009-08-22 20:37:05
对于组织和开发大型JS应用程序,JavaScriptMVC是一个很好的选择。
架构设计考虑得很周到。你可以用JavaScript做4件事:
JMVC将它们划分为模型、视图、控制器模式。
首先,也可能是最重要的优势,是控制器。控制器使用事件委托,因此您只需为页面创建规则,而不是附加事件。它们还使用控制器的名称来限制控制器工作的范围。这使得你的代码是确定性的,这意味着如果你在一个'# todos‘元素中看到一个事件发生,你就知道必须有一个todos控制器。
$.Controller.extend('TodosController',{
'click' : function(el, ev){ ... },
'.delete mouseover': function(el, ev){ ...}
'.drag draginit' : function(el, ev, drag){ ...}
})
接下来是模型。JMVC提供了一个强大的类和基本模型,使您可以快速组织Ajax功能(#2),并使用特定于域的功能包装数据(#3)。完成后,您可以使用控制器中的模型,如下所示:
Todo.findAll({after: new Date()},myCallbackFunction);
最后,一旦你的待办事项回来了,你必须展示它们(#4)。这就是您使用JMVC视图的地方。
'.show click' : function(el, ev){
Todo.findAll({after: new Date()}, this.callback('list'));
},
list : function(todos){
$('#todos').html( this.view(todos));
}
在'views/todos/list.ejs‘中
<% for(var i =0; i < this.length; i++){ %>
<label><%= this[i].description %></label>
<%}%>
JMVC提供的不仅仅是架构。在开发周期的任何部分,它都可以帮助您:
发布于 2008-08-29 19:58:56
MochiKit非常棒--可以说,就js库而言,它是我的最爱。但我发现,虽然MochiKit有非常丰富的语法,但我对它的感觉远不如Prototype/MochiKit或jQuery让我觉得舒服。
我认为如果你知道或者喜欢python,那么MochiKit对你来说是一个很好的工具。
https://stackoverflow.com/questions/32540
复制相似问题