管理视图文件和JS标记

时间:2012-07-05 05:00:43

标签: javascript design-patterns smarty

我使用Smarty来处理我的观点。为了最大限度地重用代码,我将视图文件拆分为小段,并将它们包含在需要的地方。这很有效,因为它在浏览器上呈现时保持我的标记一致。

问题是我还有JS会做某些DOM操作。这意味着我的JS需要了解标记结构等。在很多情况下,JS被迫维护Smarty模板文件中已存在的标记的相同副本。

这将成为维护的噩梦,因为标记的任何更改都必须在Smarty模板文件中完成,并且可能在JS标记中完成。

关于如何优雅地处理这个问题的任何建议?或者我只是接受这个必要的邪恶?

1 个答案:

答案 0 :(得分:0)

  

我将视图文件拆分成小段,只需将它们包含在需要的地方

对您的JavaScript执行相同操作。想想模块化和制作模块而不是页面。任何模块都包含HTML(在您的情况下为Smarty),JavaScript和CSS。任何需要该模块的页面都应该需要这三个文件。或者您可以将所有内容捆绑在一起以使包含模块更容易创建模块时,您将编辑模块而不是页面。这样你就不会通过编辑JavaScript或CSS / HTML来破坏它。

模块可以是任何可以与页面中其他模块无关的模块。当然,模块可以相互通信,但您需要为模块系统定义一致的API。

这种方法可以使维护更容易,但缺点是您必须几乎重写整个应用程序以使其模块化。