据我所知,您的所有JavaScript都合并为1个文件.当Rails添加//= require_tree .到application.js清单文件的底部时,默认情况下会执行此操作.
这听起来像是一个真正的生命保护程序,但我有点担心特定于页面的JavaScript代码.此代码是否在每个页面上执行?我想要的最后一件事是,只需要在1页上需要为每个页面实例化我的所有对象.
此外,代码是否也存在冲突的可能性?
或者你是否script在页面底部放了一个小标签,只是调用一个执行页面javascript代码的方法?
那你不再需要require.js了吗?
谢谢
编辑:我很感谢所有的答案......我认为他们并没有真正解决问题.其中一些是关于造型而且似乎没有关联...而其他人只是提到javascript_include_tag......我知道存在(显然......)但是看起来Rails 3.1的方式将会包括所有的将您的JavaScript编入1个文件,而不是在每个页面的底部加载单独的JavaScript.
我能想到的最好的解决方案是div用ids或classes 包装标签中的某些功能.在JavaScript代码,你只要检查id或class在页面上,如果是,您在运行与之相关联的JavaScript代码.这样,如果动态元素不在页面上,则JavaScript代码不会运行 - 即使它已包含在application.js由Sprockets打包的大量文件中.
我的上述解决方案的好处是,如果在100个页面中的8个页面中包含搜索框,则它将仅在这8个页面上运行.您也不必在网站的8个页面上包含相同的代码.实际上,您永远不必在任何地方再次在您的网站上包含手动脚本标记.
我认为这是我问题的实际答案.
javascript ruby-on-rails ruby-on-rails-3.1 sprockets asset-pipeline
我现在有大约7个Javascript文件(感谢各种jQuery插件)和4-5个CSS文件.我很好奇处理这些问题的最佳做法是什么,包括文档中应该加载哪些内容?YSlow告诉我,Javascript文件应该 - 如果可能 - 最后包括在内.身体的尽头?它提到了分隔符似乎是他们是否写内容.我所有的Javascript文件都是函数和jQuery代码(所有这些都在ready()时完成)所以应该没问题.
那么我应该包含一个CSS和一个Javascript文件,并包含其余的?我应该将所有文件连接成一个吗?我应该在文档的最末端放置Javascript我的标签吗?
编辑: FWIW是的,这是PHP.
我通常将所有JavaScript脚本放在一个文件中scripts.js(例如,HTTP请求越少越好).因此,正如预期的那样,某些页面需要一些脚本,有些则不需要.
要定位特定页面,我使用以下内容:
if ($("body#share").length > 0) {
// Place the logic pertaining to the page with ID 'share' here...
}
// The file / script continues...
Run Code Online (Sandbox Code Playgroud)
其他或更好的建议?谢谢!
澄清:我不是在寻找将多个JS文件合并到一个大文件中并保留多个单独的JS文件之间的优缺点.对此的答案肯定是"取决于具体情况"(我们知道).我的问题是,假设我的所有JS逻辑都放在一个大文件中,如何在加载相应的页面时才使特定的(大块)脚本运行?我过去常做的一种方法是使用if ($('#id-of-target-element')) { /* run the script */}; 有没有更好的办法?
好吧,所以我有一个合理的大小项目,我正在使用jquery主干和其他几个javascript库.我想知道我的javascript库是否应该有一个文件而我的自定义代码应该有另一个文件.或者一堆单独的javascript文件.
我正在ASP.NET MVC中开发并使用多个JavaScript文件.例如jQuery,jQuery UI,Google Maps,我自己的JavaScript文件等.
为了表现,我应该将它们合二为一吗?如果是这样,怎么样?
javascript ×5
jquery ×2
asp.net ×1
css ×1
filesystems ×1
html ×1
performance ×1
php ×1
sprockets ×1
web ×1