据我所知,所有JavaScript都被合并到一个文件中.默认情况下,Rails会在application.js
list 文件的底部添加//= require_tree .
.
这听起来像是真正的救命稻草,但我有点担心特定于页面的JavaScript代码.这段代码是否在每一页上都会执行?我最不希望的是,当我的所有对象只在一页上需要时,为每一页实例化它们.
此外,难道不存在代码冲突的可能性吗?
或者您是否在页面底部放置一个小的script
标记,用于调用执行页面的javascript代码的方法?
你不再需要了吗.那么呢?
谢谢
EDIT:我很感激所有的答案...我认为他们并没有真正理解这个问题.其中一些是关于造型的,似乎没有联系...其他人只提到javascript_include_tag
...我知道它的存在(显然…)但Rails 3.1的发展方向似乎是将所有JavaScript打包成一个文件,而不是在每个页面的底部加载单个JavaScript.
我能想到的最好的解决方案是用id
或class
E将某些功能封装在div
个标签中.在JavaScript代码中,您只需判断页面上是否有id
或class
,如果是,则运行与其相关联的JavaScript代码.这样,如果动态元素不在页面上,JavaScript代码就不会运行--即使它已经包含在链轮打包的大容量application.js
文件中.
我上面的解决方案的好处是,如果100个页面中有8个包含搜索框,它将只在这8个页面上运行.你也不必在网站的8个页面上包含相同的代码.事实上,你再也不用在你的网站上的任何地方添加手动脚本标签了.
我想这是我问题的实际答案.