gpt4 book ai didi

javascript - Rails 3.1 中页面特定的 javascript 文件

转载 作者:行者123 更新时间:2023-11-30 18:35:00 24 4
gpt4 key购买 nike

我一直在研究这个:

Using Rails 3.1, where do you put your "page specific" javascript code?

但是至今没有看到满意的答案,这也让我怀疑自己是不是做错了什么。

这是我的心智模型:对于不同的观点,我会有不同的看法

$(document).ready(....)

block ,它显然引用了特定于该页面的元素。我不想通过为每个页面加载该代码并以某种方式试图弄清楚如何仅在特定页面上执行它来污染事物;这看起来很丑。

我的直觉(诚然没有得到任何初步实验的支持)是理想的事情是:

  1. 从 application.js 加载应用程序范围的代码。
  2. 从 assets/controller_name/shared.js 加载共享 Controller 代码
  3. 从诸如 assets/controller_name/show.js 之类的地方加载特定于 View 的代码

离开我的头顶。助手会在第一次运行时检查文件是否存在,如果存在,则为其执行 javascript_include。

与“让我们把整个东西包裹在一个大粘性球中并全部发送”方法相比,这可能存在一些性能问题,但似乎是一种更好的划分代码的方法。

但是,如上所述,我觉得我错过了一些东西。 $(document).ready 每页是个坏主意吗?那应该只是在模板中并从 application.js 调用页面特定的 JS 吗?上面的链接文章得出了那个结论,但我不喜欢我脑海中浮现的这样一个画面:一个巨大的 $(document)。如果这个,如果那个,如果还有其他东西。

最佳答案

您提出的建议是合理的,但不是 Rails 3.1 的方式。

他们说把JS分成很多文件,但是对用户来说是一个整体。这允许更好的性能和可扩展性,所以如果最后的大块泥不是那么大,那是一件好事。实际上 3 个 http 请求的性能比 1 个 http 请求差。

所以您已经对代码进行了二分区,因为您有不同的 Coffeescript 文件,它们具有不同的范围。

要在您的应用中加载,只需标准化一种初始化单段代码的方法,例如调用“myapp.users.init()”方法。

您甚至可以使用助手自动执行这些代码,因此它对 Controller 来说是透明的。

关于javascript - Rails 3.1 中页面特定的 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487725/

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