自从我听说 JSON 以来,我一直在我的 Rails 应用程序中使用 JSON 来处理 AJAX 功能,因为使用 RJS/渲染 HTML“感觉”错误,因为它违反了 MVC。我从事的第一个 AJAX 密集型项目最终有 20-30 个控制器操作直接与特定的 UI 行为相关,并且我的视图代码分布在控制器操作、部分和 rjs 文件中。使用 JSON 允许您在视图中保留视图特定代码,并且仅通过 AJAX 与视图不可知/RESTful 控制器操作进行交互以获取所需的数据。
我发现使用纯 JSON 的一个令人头疼的问题是,您必须通过 JS“渲染”HTML,对于必须更新 DOM 重元素的 AJAX 来说,这可能是一种真正的痛苦。我最终得到了长字符串构建代码,例如
// ...ajax
success: function(records){
$(records).each(function(record){
var html = ('<div id="blah">' + record.attr +
etc +
')
})
}
其中etc是10-15行基于记录数据动态构建的HTML。除了烦人之外,这种方法的一个更严重的缺点是 HTML 结构的重复(在模板和 JS 中)。* 这种方法有更好的实践吗?
(我最终伸出援手的动机是我现在的任务是更新 HTML,如此复杂,以至于首先需要两个嵌套的 Ruby 代码循环才能渲染。在 Javascript 中复制它似乎很疯狂。)
- 我考虑过的一件事是直接从文件系统加载静态部分文件,但这似乎有点多。
我喜欢模板的想法。根据我的经验,它确实可以清理混乱的字符串操作!
有很多解决方案,例如,查看 John Resig(jQuery 的创建者)的:
http://ejohn.org/blog/javascript-micro-template/ http://ejohn.org/blog/javascript-micro-templating/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)