javascript - rails 最佳实践在哪里放置不显眼的 javascript

标签 javascript jquery ruby-on-rails ruby unobtrusive-javascript

我的 Rails 应用程序(所有 2.3.5)使用了内联 javascript、rjs、原型(prototype)和 jquery 的总组合。让我们称之为学习或成长的烦恼。最近我越来越迷恋不显眼的javascript。它使您的 html 变得干净,就像 css 清理它一样。

但是我看到的大多数例子都是小例子,他们把所有的javascript(jquery)都放在application.js里面

现在我有一个相当大的应用程序,我正在想办法构建我的 js。我以某种方式喜欢我的脚本仍然接近 View ,所以我在想类似的事情

orders.html.erb
orders.js

其中 orders.js 包含特定于该 View 的不显眼的 javascript。但也许那只是我太保守了:)

我读过 Yehuda Katz 关于这个问题的一些帖子 herehere ,他解决了这个问题。它将遍历您的 js 文件并仅加载与您的 View 相关的文件。但可惜我找不到当前的实现。

所以我的问题:

  • 您如何最好地构建您的不显眼的 javascript;管理您的代码,您如何确保从 html 中可以清楚地看出应该做什么。我想好的类(class)名称大有帮助:)
  • 你如何安排你的文件,将它们全部加载进去?一些?您是否在 View 中使用 content_for :scriptjavascript_include_tag 来加载相关脚本。或者……?
  • 您是编写非常通用的函数(如删除)、带参数(添加额外属性?),还是编写非常具体的函数(DRY?)。我知道在 Rails 3 中有一个标准集,那里的一切都不引人注目。但是如何在 Rails 2.3.5 中启动呢?

简而言之:在 Rails 中执行不显眼的 JavaScript 的最佳实践是什么? :)

最佳答案

我认为没有一种最佳做法,但我会让你知道我做了什么。

  1. 我在 public/javascripts/ 中有一系列 js 文件,每个文件都有自己的用途。目录。一些示例可能是 utility.js chat.js shopping_basket.js等等。

  2. 我使用 asset packager并为我所有的通用功能定义一个大的 fat 集合,为仅管理功能定义另一个。往返服务器的成本太高了。我基本上将所有 js 包含在第一个页面加载中并缩小到一个 blob 中(通常)

  3. 我允许基本 $(document).ready在页面中内联 Hook ,并使它们非常短。

  4. 我的 js 文件需要访问的数据与页面内嵌呈现。 (通常在 DOM 中,有时作为变量 - 例如 var xyz = 100 )

  5. 我通常会在关闭 javascript 的情况下开发我的 Controller (并确保它一切正常),然后我打开它并撒上一些 if request.xhr?在需要的地方。


请记住,Rail 3.1 引入了内置的最佳实践,请参阅:http://guides.rubyonrails.org/asset_pipeline.html - 就我个人而言,我在使用新管道时遇到过性能和配置问题,但是许多其他管道都取得了巨大的成功。

关于javascript - rails 最佳实践在哪里放置不显眼的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2891523/

相关文章:

jquery - 在 jquery 中 $ ('<div></div>' ) 做什么?

javascript - 在 onclick 事件中传递对象时出错

ruby-on-rails - 工厂女孩/Rspec - "Trait Not Registered"错误

ruby-on-rails - 使用 Rails 传输数据库

ruby-on-rails - 使用 MailChimp 3.0 和 Gibbon 2.x 检索 member_id

javascript - 单击后隐藏复选框

javascript - 如何强制 javascript 数组继承我的自定义对象?

javascript - 分段 HTML 输出不起作用

javascript - 循环功能不起作用

javascript - 如何更改 JavaScript 中的全局变量?