管理视图文件和 JS 标记
Managing view files and JS mark up
我用Smarty来处理我的观点。为了最大限度地重用代码,我将视图文件拆分为小段,并将它们包含在需要它们的任何位置。这很有效,因为它在浏览器上呈现时可以使我的标记保持一致。
问题是我也有JS可以执行某些DOM操作。这意味着我的JS需要了解标记结构等。在很多情况下,JS被迫维护Smarty模板文件中已经存在的标记的相同副本。
这将成为维护的噩梦,因为对标记的任何更改都必须在 Smarty 模板文件中完成,并且可能在 JS 标记中完成。
关于如何优雅地处理这个问题的任何建议?还是我只是接受这是一种必要的邪恶?
我将视图文件分成小段,并将它们包含在需要
的地方
对你的 JavaScript 做同样的事情。考虑模块化并制作模块而不是页面。任何模块都将包括HTML(在你的例子中是Smarty),JavaScript和CSS。任何需要该模块的页面都应该需要这三个文件。或者,您可以将所有模块捆绑在一起,以便更轻松地包含模块。创建模块时,您将编辑模块而不是页面。这样你就不会通过编辑JavaScript或CSS/HTML来破坏东西。
模块可以是页面中其他模块可以独立的任何内容。当然,模块可以相互通信,但您需要为模块系统定义一个一致的 API。
这种方法将使维护更容易,但缺点是您必须几乎重写整个应用程序以使其模块化。
相关文章:
- 如何更改<svg>标记为<img>用js标记
- angular.js没有'无法在PhoneGap中处理视图标记
- 谷歌地图JS API+JSON-多个标记没有显示
- Js.erb VS按钮标记-不'不起作用.为什么?
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 使用 Pure JS 更改 HTML 标记名称
- 如何将模板中的标记脚本移动到.js文件中
- 如何在渲染视图时将变量传递给Node.js中的脚本标记
- 谷歌地图/Angular JS:地图更新并不总是反映数据,并且可以't删除标记
- 更改标记.js图像/链接表达式
- 使用JS和PHP通过锚标记传递值
- 未使用.removeLayer()删除Mapbox JS标记
- 管理视图文件和 JS 标记
- 传单.js - 标记与叠加重叠
- 如何使用CSS3/JS标记图像中的不同部分
- 将CSS类用于JS标记是一种糟糕的做法
- js标记片段
- 使用脚本async>用Angular.js标记
- 使用video.js标记每个函数更新按钮类
- 将 ID 添加到 GMaps.js标记