Ruby on rails Rails 3 UJS Ajax模式/策略,哪种更好?

Ruby on rails Rails 3 UJS Ajax模式/策略,哪种更好?,ruby-on-rails,ajax,ujs,Ruby On Rails,Ajax,Ujs,我工作的公司最近从Rails2升级到了Rails3,在同一时期,我们也从rjs迁移到了jquery。我们正在采用一种新模式,旨在提高视图的可重用性。我将以编辑/更新为例来说明在项目中使用AJAX的新方法和旧方法: A.旧方法-编辑操作模板不会向客户端呈现任何特定于更新的javascript逻辑。更新模板同时呈现html内容和操作(替换元素)。这与RJS方法非常相似,但在jQuery中 优点: 1.AJAX html内容和执行DOM操作的javascript代码组织在同一个.rb文件中,易于维护。

我工作的公司最近从Rails2升级到了Rails3,在同一时期,我们也从rjs迁移到了jquery。我们正在采用一种新模式,旨在提高视图的可重用性。我将以编辑/更新为例来说明在项目中使用AJAX的新方法和旧方法:

A.旧方法-编辑操作模板不会向客户端呈现任何特定于更新的javascript逻辑。更新模板同时呈现html内容和操作(替换元素)。这与RJS方法非常相似,但在jQuery中

优点:
1.AJAX html内容和执行DOM操作的javascript代码组织在同一个.rb文件中,易于维护。
2.视图规范可以测试更新AJAX响应中是否呈现了正确的DOM操作js代码

缺点:
1.因为html内容和js代码是耦合的,并且在目标页面上采用特定的DOM结构,所以在不同的页面上很难重用

B.新方式-AJAX请求的更新操作模板只返回一个JSON文档,其中包含转义的html内容。操纵DOM的js代码是从编辑操作模板呈现的,并监听AJAX:success/error虚拟事件。因此,内容和行为是分开的

优点:

  • AJAX html内容和javascript(行为)是解耦的,因此可以在不同的页面上对内容进行微调和操作
  • 缺点:

  • html内容和js代码现在组织在两个不同的文件中(编辑操作模板中的js,更新操作模板中的html内容),这比以前更难维护

  • 我们再也不能轻松地测试视图行为了——更新模板现在只呈现AJAX html内容,但操作它的代码位于不同的视图(编辑)中

  • 因为响应是JSON格式的,所以我们不能再使用该格式来判断客户机是希望使用JSON包装的html还是JSON API调用

    这些都是我到目前为止学到的东西,我想知道在这个话题上有更多经验的人是否能对此有所启发——通常哪种方法更好,以及如何改进它们

  • 谢谢

    -晓天

    jQuery的ajax&生成json