Rails 3 UJS Ajax模式/策略,哪个更好?

时间:2011-06-06 22:19:06

标签: ruby-on-rails ajax ujs

我工作的公司最近从Rails 2升级到Rails 3,在同一时期我们也从rjs迁移到jquery。我们正在采用一种旨在提高视图可重用性的新模式。我将使用edit / update作为示例来说明在项目中执行AJAX的新方法和旧方法:

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

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

缺点:
 1.因为html内容和js代码在目标页面上耦合并假设某些DOM结构,所以在不同的页面上重用更难。

B中。 新方式 - AJAX请求的更新操作模板仅返回包含转义的html内容的JSON文档。操作DOM的js代码从编辑操作模板呈现并监听AJAX:成功/错误虚拟事件。所以内容和行为是分开的。

优点:

  1. AJAX html内容和javascript(行为)是分离的,所以内容可以在不同的页面上进行调整和操作略有不同。
  2. 缺点:

    1. html内容和js代码现在分为2个不同的文件(编辑操作模板中的js,更新操作模板中的html内容),它比以前更难维护。

    2. 我们再也无法轻松测试视图行为 - 更新模板现在只呈现AJAX html内容,但操作它的代码位于不同的视图中(编辑)。

    3. 由于响应是JSON格式,我们不能再使用格式来判断客户端是否期望用JSON包装的html或只是JSON API调用。

      这些是我到目前为止学到的东西,我想知道在这个主题上有更多经验的人是否可以对此有所了解 - 哪种方法总体上更好,以及如何改进它们。

    4. 谢谢!

      -Xiaotian

1 个答案:

答案 0 :(得分:0)

jQuery的ajax& rabl生成json