1
7
模式通常是语言不可知论。如果一个模式有价值,除了某些边缘情况,它将有价值,不管你使用的是什么语言或技术。以MVC为例。无论模型是用RDBMS还是其他技术实现的,无论视图是HTML、Swing还是X,将模型与视图与控制器分离的概念都具有价值。 当您看到某些模式在一种技术中比另一种技术中应用得更多时,这通常意味着该技术的开发人员拥有一种比其他技术更全面支持的特定方法。 JavaScript本身不会对您施加任何特定的模式。一些JavaScript框架,如yui、dojo或glow,往往会引导您朝一个方向前进。 在一天结束的时候,看看你正在解决的问题,你拥有的资源和经验,并遵循有意义的模式。 |
2
4
我想推荐罗斯·哈姆斯和达斯汀·迪亚兹的书, Pro JavaScript Design Patterns 是这方面最好的资源,绝对值得一读。 还有一篇非常有趣的文章 JavaScript MVC 在最新一期的 A List Apart . |
3
1
构建GUI应用程序的一个好方法是使用浏览器:
大多数现代的图形用户界面框架(extjs、dojo等)都提供API,这些API完全有助于在javascript中构建图形用户界面。但是还有另一个图形用户界面框架 Ample SDK 这使得前面提到的关注点分离。它允许使用基于XML的语言(xhtml、xul、svg)进行布局,CSS用于样式,DOM API用于UI逻辑。 要协调客户端GUI应用程序,您可以使用MVC或稍微高级一点的模式PAC,对于前者,有一个 PureMVC 可用的实施 请看下面的代码片段(只涉及要用MVC/PAC构建的UI逻辑,而不是应用程序逻辑): 索引文件
索引文件
索引文件
|
4
1
据我所知,还没有针对javascript的特定模式。但我认为有一种可能性,比如小部件(组件)方法。因为我们主要使用JavaScript来增强HTML代码的能力。从逻辑上讲,我们应该将每个JavaScript对象连接到HTML标记。所以这里我们有类似模型(JSObject)+视图(HTMLrepresentation)的东西。为了得到MVC,我们需要控制器,并且我们有相关的事件。在这种情况下,我们将有易于封装的扩展组件。 例如:
我也有使用模板引擎的想法,比如 Zparser 分离视图和模型。我正在为此开发JS库,所以我现在正处于这个问题中。 我们的核心对象是 看法 方法。我们所有的课程在他结尾都有一个原型。这个方法得到 模板 类的属性,并使用一些模板解析器根据我们的模型生成HTML。此HTML插入到htmlobj节点中,以便更新对象的视图。这基本上是一个想法,我们的代码变成:
我仍然认为最后一条线
现在。我给你们举了两个例子,我会解释为什么第二个太具体。
所以我宁愿在这两者之间做出选择:)并且在他们的位置上使用一切。 |
6
0
模式并不总是语言不可知论。很多经典的设计模式在JavaScript中都是毫无意义的,因为我们不需要他们在更严格的语言范例中解决的大量解决方案。 然而,MVC不适合客户端Web开发的原因更具情境性。 首先,我认为时间和痛苦已经证明了典型的Web应用程序最好作为两个独立的应用程序来处理。发生在浏览器上的和发生在服务器上的。你在两者之间建立的依赖关系越少,我的经验中修改的Web应用程序就越灵活、可维护和容易。 M是业务逻辑(人们往往不准确地将其与“数据库层”IMO混淆)。 在这种情况下,MVC的问题是,我们不想在客户端公开业务逻辑,并试图将整个应用程序分解成一个可怕的HTTP划分隐藏结构,这已经证明了我提到的痛苦。 然而,在分离数据或“视图模型”关注点的非常相似的模式中,可以相当好地工作。 |
Softly · 单选按钮未按预期取值 1 年前 |
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
assembler · Nextjs没有处理发布请求 1 年前 |
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
Toniq · javascript为php保存多维数组 1 年前 |