通过JSON/AJAX更新HTML

tfw*_*ght 5 javascript ajax jquery json ruby-on-rails

自从我听说它以来,我一直在使用JSON来处理我的rails应用程序中的AJAX功能,因为使用RJS /呈现HTML"感觉"错误,因为它违反了MVC.我工作的第一个AJAX项目结果是20-30个控制器动作直接绑定到特定的UI行为,我的视图代码分布在控制器动作,部分和rjs文件上.使用JSON允许您在视图中保持视图特定代码,并且仅通过AJAX与视图不可知/ RESTful控制器操作进行对话以获取所需数据.

我从使用纯JSON中发现的一个难题是你必须通过JS"渲染"HTML,在AJAX的情况下,必须更新DOM重元素,这可能是一个真正的痛苦.我最终得到了很长的字符串构建代码

// ...ajax 
success: function(records){
  $(records).each(function(record){
    var html = ('<div id="blah">' + record.attr +
      etc +
    ')
  })
}
Run Code Online (Sandbox Code Playgroud)

其中等10-15行基于记录数据动态构建HTML.除了烦恼之外,对这种方法的更严重的回归是HTML结构的重复(在模板和JS中).*这种方法有更好的实践吗?

(我最终伸出手的动机是我现在的任务是更新HTML如此复杂,它需要两个嵌套的Ruby代码循环才能首先渲染.在Javascript中复制它似乎很疯狂.)

  • 我考虑过的一件事是直接从文件系统加载静态部分文件,但这似乎有点多.

tfw*_*ght 0

只是碰巧找到了我正在寻找的东西:Jaml