如果我使用rails 3使用资产管道来编译所有的 Javascript,这是否意味着我的整个应用程序只能有一个Knockout视图模型?如果不是,我该如何指定哪个视图模型绑定了哪个视图?在教程代码中,每个页面看起来像一个视图模型是绑定的,但这不适用于rails,因为所有JS都是在第一次加载页面时加载的。在Rails 3中敲除3
1
A
回答
1
不,你不需要在每一页上都包含所有的javascript!这是一个非常糟糕的主意。
有限制的JavaScript到一个页面中有许多方法,你应该选择一个:
Method 1
Method 2
Method 3
请,请,请不要尝试加载在每一个所有你的JavaScript页。
更新(下面的评论后):
我觉得你在这里混淆了几个不同的事情。
首先,即使您将所有javascript编译为单个gzipped/uglified文件,仍然不会强制您为整个应用程序使用一个基础视图模型。该文件可以包含多个视图模型。他们甚至不需要了解彼此。
其次,rails管道的工作方式是将相关或依赖的javascript文件连接在一起。它这样做是为了减少浏览器为获取每个页面所需的JavaScript而需要的请求数。它不会必然意味着所有的JavaScript变成一个文件。只需为每个页面的javascript 成为一个文件即可。欲了解更多信息,请查看Rails Asset Pipeline Documenation,它对它的工作原理以及如何正确使用它有很好的解释。
第三,这些都不意味着你需要把所有的javascript写成一个文件。事实上,这是一个坏主意。你应该根据功能将你的javascript分成相关的文件。这使它们可以重用,并且可以简化开发工作。
相关问题
- 1. 在Rails 3中删除ActiveRecord 3
- 2. 在Rails 3中标记3
- 3. 在rails 3中的responds_to_parent 3
- 4. Rails 3中排除清单
- 5. 在Rails 3中
- 6. 在Rails 3中
- 7. 在Rails 3中
- 8. 在Rails 3中
- 9. 在Rails 3中
- 10. 在Rails 3中
- 11. 在Rails 3中删除一条链接的两条记录3
- 12. Assosiations在Rails 3中
- 13. POST在rails 3中
- 14. Rails 3中的Has_and_belongs_to_many 3
- 15. Rails 3中的路线3
- 16. Rails 3中使用distance_of_time_in_words 3
- 17. Rails 3中的词库3
- 18. Rest 3在rails 3中的API
- 19. 在Rails 3中获取Gem :: Ext :: BuildError 3
- 20. 在Rails 3中使用kramdown 3
- 21. 在Rails 3中创建plist 3
- 22. 在Rails 3中使用mailcatcher 3
- 23. 删除Rails 3子域Cookie
- 24. 在Rails的3
- 25. 在Rails的3
- 26. 在Rails 3的
- 27. 在asp.net MVC 3中清除Chrome chache 3
- 28. Rails 3:从项目中删除宝石?
- 29. Rails 3:从表单中清除错误
- 30. 删除不工作在Rails 3
如果所有的JS都通过Gzip进行了简化和压缩,那么比使用方法3特有的JS更好吗?但是,如果我想使用一个大文件,那么Knockout不起作用? – Dean 2012-08-02 00:39:31
@Dean请参阅我的更新。 – Tyrsius 2012-08-02 01:08:30