2011-05-21 165 views
4

好的,所以我开始使用Rails 3.1开发一个新项目,并且我是CoffeeScript的新手。如何管理Rails 3.1中的资产?

无论如何,我喜欢使用代表控制器的资产文件的想法,但是如果我只想在调用控制器时渲染JS,该怎么办?

例如,我有一个名为Game的控制器。在我的games.js.coffee文件中,我在其中放置了一些代码,并要求每个页面请求。即使是与Games无关的页面。

Rails 3.0.7,我会做的就是把一个yield(:js)在应用ERB文件,然后调用content_for(:js)Games#action视图。这样,只有该控制器所需的js被加载。

或者,我是否以这种错误的方式去做?为了提高性能,为每个页面请求加载并缓存js代码,是否更好?全部 js代码是否更好?

感谢您的任何建议。

回答

5

为每个页面请求加载和缓存所有js代码以提高性能会更好吗?

基本上,Rails团队认为答案通常是“是”。大多数网站最适合只有一个(缩小的)JS文件,这在默认情况下会在Rails 3.1中获得。这样,一旦用户访问了您网站的单个页面,所有其他页面都将快速加载,因为所有的JS都被缓存了。

如果你的网站有一个巨大的 JS(认为Facebook),那么我建议你架构网站异步加载很少使用的JS代码,利用图书馆像RequireJS的。否则,我不会在不同的控制器下加载不同的代码。对于边际收益来说,这是一项额外的工作。