代码之家  ›  专栏  ›  技术社区  ›  nathanvda

rails最佳实践在何处放置不引人注目的javascript

  •  31
  • nathanvda  · 技术社区  · 15 年前

    但我看到的大多数示例都是小示例,它们将所有javascript(jquery)放在application.js中

    现在我有了一个相当大的应用程序,我正在想办法构造我的js。不知何故,我喜欢我的脚本仍然接近的看法,所以我认为像这样的东西

    orders.html.erb
    orders.js
    

    其中orders.js包含特定于该视图的不引人注目的javascript。但也许这只是我太保守了:)

    我读过叶胡达·卡茨关于这个问题的一些帖子 here here ,他解决了这个问题。它将遍历你的js文件,只加载那些与你的视图相关的文件。但遗憾的是,我找不到当前的实现。

    • 如何最好地构造不引人注目的javascript;管理你的代码,你如何确保它是显而易见的从html什么东西应该做。我想好的班级名称很重要:)
    • content_for :script javascript_include_tag 在您的视图中加载相关脚本。还是?
    • 您是编写非常通用的函数(如delete)、带参数的函数(添加额外属性?),还是编写非常特定的函数(DRY?)。我知道在Rails3中有一个标准集,所有的东西都是不引人注目的。但是如何从Rails2.3.5开始呢?

    3 回复  |  直到 15 年前
        1
  •  10
  •   Sam Saffron James Allen    13 年前

    我不认为有一个最佳的做法,但我会让你知道我做什么。

    1. 我有一系列的js文件,每个都有自己的目的 public/javascripts/ 目录。一些例子可以是 utility.js chat.js shopping_basket.js 等等。

    2. asset packager 并为我的所有通用功能定义一个大的胖集合,为仅管理功能定义另一个大的胖集合。往返服务器的费用太高了。我基本上把第一页加载中的所有js都缩小为一个blob(一般来说)

    3. $(document).ready 在页面中内联钩子,并保持它们非常短。

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

    5. if request.xhr? 在需要的地方。


    http://guides.rubyonrails.org/asset_pipeline.html -就我个人而言,我在新管道上遇到了性能和配置问题,但是其他许多人在这方面取得了巨大的成功。

        2
  •  3
  •   Toby Hede    15 年前

    我最近记录了我的经历 managing javascript in Ruby on Rails . 基本上,我将内容分解为许多小的、细粒度的文件,每个文件都有一个适当的名称空间,然后使用asset\u packager将它们全部合并到一个文件中进行生产。

        3
  •  1
  •   prusswan    10 年前

    我在试图解决同一个问题时发现了这篇文章,但没有一个现有的解决方案给我留下正确的印象。我写下了我的方法 here.