你的rails应用程序如何包含javascript?
我很好奇你的Rails应用程序是如何包含javascript的。例如:你的rails应用程序如何包含javascript?,javascript,jquery,ruby-on-rails,ajax,prototypejs,Javascript,Jquery,Ruby On Rails,Ajax,Prototypejs,我很好奇你的Rails应用程序是如何包含javascript的。例如: 您是否将所有js代码打包到一个文件中,并为所有请求提供服务 您是否根据控制器/操作有条件地加载某些js 您使用什么工具或技术,例如:asset_packager、yui压缩机、链轮、BigPipe灵感实现 一点背景:我在一个非常重JS的大型Rails应用程序上工作。目前,所有js都被缩小并从单个文件提供服务。这使得事情变得非常方便,因为所有的框架和小部件都随处可见。我开始质疑这种方法,让所有用户为他们可能永远看不到的js
- 您是否将所有js代码打包到一个文件中,并为所有请求提供服务
- 您是否根据控制器/操作有条件地加载某些js
- 您使用什么工具或技术,例如:asset_packager、yui压缩机、链轮、BigPipe灵感实现
多谢 首先,尝试Firefox的插件:。它将帮助您确定缓慢的来源,并可以分析您的脚本使用情况并提出改进建议
另外,请查看雅虎关于fast网站最佳实践的这篇文章:。此建议适用于所有网站,而不仅仅是rails。需要考虑以下几个权衡:
- 如果你有一个大的JS文件,那么应该为你的所有页面缓存它。但是如果只有少数页面使用JS,那么这就不好了
- 如果您的页面不共享JS,那么您可能希望对每个页面的单独JS使用“按需”加载。但是您不需要太多的加载,因为每个JS获取都有自己的开销
- 确保所有的JS将永远缓存在客户端上。在文件名或URL中使用版本号(foo.js?123)
- 确保最小化JS文件
- 确保web服务器已启用gzip编码
- 您可能希望为您的JS使用一个低成本的内容交付网络,如亚马逊或其竞争对手之一
- YUI压缩机
- S3用于为my assets.foo.com域提供服务
- rake任务合并/最小化多个JS源文件