gpt4 book ai didi

ruby-on-rails - rails : Rails Prototype vs Unobtrusive Javascript using jQuery

转载 作者:行者123 更新时间:2023-12-04 16:35:51 25 4
gpt4 key购买 nike

我曾使用 Ajax 和 Ruby 参与过两个项目。在一个项目中,我使用了 Rails Prototype 助手和 RJS。在另一个项目中,我使用了 HAML 和带有 jQ​​uery 的不显眼的 Javascript。每个人都有一个我已经克服的学习曲线。然而,这两种方法的长期成本和 yield 尚不清楚。对于我的下一个项目,我试图在以下两者之间做出决定:

  1. Rails + HAML + jRails + jQuery
  2. Rails + HAML + 低调的 jQuery

Rails 的趋势,尤其是 Rails 3.0,似乎倾向于使用不显眼的 Javascript,但我不清楚为什么这样更好,尤其是当您从 Rails/jRails 获得如此多有用的助手(例如 remote_form_for)时。在尝试做出此决定时,我有以下问题:

  1. 哪种方法可以用更少的代码来实现相同数量的功能?
  2. 哪种方法不容易出错?
  3. 哪种方法更容易测试?
  4. 哪种方法更易于阅读、维护和发展?
  5. 当 Javascript 在客户端浏览器中被禁用时,哪种方法可以让您更轻松地优雅地降级 Web 应用程序(通过在没有 Ajax 的情况下提供相同的功能)?

非常感谢您提供的任何帮助或见解。

最佳答案

我对您的问题有几个答案 - 至少从我的角度来看是这样。此类问题的答案实际上取决于您的经验和偏好。

1) 我会说,不显眼的 JavaScript 会导致整体代码更少,尤其是当您重用 JavaScript 方法时。

2 & 3) 对于这两个,我将使用不显眼的 JavaScript。当 JavaScript 与页面结构分离时,您可以更好地了解该特定代码段的作用并可以对其进行测试,同时知道您对这些方法进行了测试。混合代码通常(以我的经验)要获得良好的测试覆盖率要困难得多。这将有助于防止代码出错。

解耦 js 的一个问题是,如果您删除某个功能,您可能会留下代码或删除相关代码。当然,这就是您应该进行自动化测试和良好覆盖率的原因。

4) 我认为内联 js 更容易理解,因为它在那里没问题,但是任何东西都超过一行,并且你已经降低了可读性,所以你还不如为了其他好处而一直保持低调。不显眼的 js 也让其他团队成员更容易维护和记录。

5) 根据我的经验,这是一次洗涤。无论哪种方式,您都必须提供额外的方法。

作为尾注,我同意 Rails 3 还为不显眼的 js 提供了更好的支持,我将其视为最佳实践。我刚开始为客户修复一个旧应用程序,并且混合了 html、js 和逻辑的 View ,要理解他们想要完成的事情真的很痛苦。如果把东西分开,就会更容易接受。

希望对您有所帮助。

关于ruby-on-rails - rails : Rails Prototype vs Unobtrusive Javascript using jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com