1

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

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

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

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

4

1 回答 1

0

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

对你的 JavaScript 做同样的事情。考虑模块化并制作模块而不是页面。任何模块都将包括 HTML(在您的情况下为 Smarty)、JavaScript 和 CSS。任何需要这些模块的页面都应该需要这三个文件。或者您可以将所有内容捆绑在一起以使包含模块更容易。创建模块时,您将编辑模块而不是页面。这样你就不会因为编辑 JavaScript 或 CSS/HTML 而破坏事情。

一个模块可以是任何可以独立于页面中其他模块的东西。当然模块可以相互通信,但是你需要为你的模块系统定义一个一致的 API。

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

于 2012-07-05T05:13:49.810 回答