我正在构建一个应用程序,其中大多数HTML是使用javascript构建的.DOM结构是使用从服务器发送的一些JSON数据结构构建的,然后客户端代码为该数据构建UI.
我目前的方法是遍历JSON数据结构,并调用script.aculo.us的Builder.node方法来构建DOM结构,然后将其附加到实际位于服务器发送的HTML中的某个元素.在此过程中,我正在向需要它们的各种元素注册事件监听器.这允许很大的灵活性,并允许非常动态的界面.
然而,我觉得它是不是很可持续的,因为该视图逻辑(即,DOM结构)被设置成紧密耦合到能走动的数据的代码,以及事件处理程序,并且被保存在内存中,以保持所述数据state,并能够将这些更改传回服务器.
是否有任何类似模板的解决方案可以让我将DOM结构与驱动应用程序的代码分开?目前,我唯一的库依赖项是prototype.js和script.aculo.us,所以我想避免引入任何大型库,但欢迎任何建议.
谢谢!
编辑:出于某种原因,Javascript支持哪些好的模板语言?当我输入这个问题时,小搜索结果中没有出现.但是,它确实显示在此处的"相关"侧栏中.
我将在那里阅读一些建议,如果我找到解决方案,我将结束这个问题.否则,我会澄清这个问题,理由是为什么这些解决方案对我不起作用.
有一些模板解决方案,但它们并没有比你已经做的更多.jQuery已经在这些方面做了一些工作,并且一些jQuery 插件已经成为解决方案.Prototype.js和其他人也有解决方案.
一些选项包括:
原型模板
Ajax页面
一般来说,Ext js有一些相当疯狂和欺骗的东西,包括一些模板,但你要添加另一个库.现在有很多图书馆被抛弃了,实现简单明了的自定义解决方案通常要简单得多.尝试自己创建一些DOM对象.如果您有JSON数据,请将其解析到内存中并通过函数运行它.它实际上是一个爆炸,很多人都在这样做.
旁注: 您正在做的事情可能是非常可持续和可维护的.请记住,当您发送HTML页面时,浏览器会将DOM结构放入内存中,其方式与javascript完全相同.我不特别推荐任何这些解决方案.听起来你已经为你的特定需求制作了一个漂亮的小系统,我通常会说,改进你的设计至少与转移到别人的模式一样有价值,并且能够创造一些你自己的依赖.
旁注: 这是一般不建议生成整个DOM在客户端上,至少对许多市场.有时这是一个A-OK解决方案,因为它可能在你的情况下,但值得注意的是,这种发展方式并不总是最好的旅行方式.