gpt4 book ai didi

javascript - 您的 Rails 应用程序如何包含 JavaScript?

转载 作者:数据小太阳 更新时间:2023-10-29 05:27:32 25 4
gpt4 key购买 nike

我很好奇您的 Rails 应用程序如何包含 javascript。例如:

  • 您是否将所有 js 代码打包到一个文件中并为所有请求提供服务?
  • 您是否根据 Controller /操作有条件地加载某些 js?
  • 您使用哪些工具或技术,即:asset_packager、yui compressor、sprockets、受 BigPipe 启发的实现?

一些背景知识:我正在开发一个非常依赖 JS 的大型 Rails 应用程序。目前,所有 js 都被缩小并从单个文件提供。这让事情变得非常方便,因为所有框架和小部件都随处可用。我开始质疑这种方法是不是让所有用户为一些他们可能永远看不到的 js 付出代价似乎有点疯狂。由于网站的大部分内容都是通过 ajax 传送内容,因此在代码中乱扔脚本似乎既蹩脚又困难。

有人有什么建议可以分享吗?

非常感谢!

最佳答案

有几个权衡因素需要考虑:

  • 如果您有一个大的 JS 文件,那么应该为您的所有页面缓存它。但是,如果只有少数页面使用 JS,那么这并不好。
  • 如果您的页面不共享 JS,那么您可能希望对每个页面的单独 JS 使用“按需”加载。但是您不希望加载太多,因为每个 JS 提取都有自己的开销。

注意事项

  • 确保您的所有 JS 都将永久缓存在您的客户端上。在文件名或 url 中使用版本号 (foo.js?123)
  • 确保 JS 文件最小化。
  • 确保网络服务器已打开 gzip 编码。
  • 您可能希望为您的 JS 使用低成本的内容分发网络,例如亚马逊的 Cloudfront或他们的竞争对手之一。

具体问题的答案

您是否将所有 js 代码打包到一个文件中并为所有请求提供服务?

所有的请求都会得到一个大的JS文件,里面有库代码和大部分页面用到的JS。一些特定的页面还会获得一个额外的 JS 文件。

你是否根据 Controller / Action 有条件地加载某些 js?

是的,对于几个非常重的 JS 页面,这些页面会得到一个额外的 JS 文件。所有页面都获取 reg JS 文件,并且它已缓存/可用于所有页面。

您使用哪些工具或技术,即:asset_packager、yui compressor、sprockets、受 BigPipe 启发的实现?

  • YUI 压缩器
  • 为我的 assets.foo.com 域提供服务的 S3
  • 合并/最小化多个 JS 源文件的 rake 任务

关于javascript - 您的 Rails 应用程序如何包含 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3696860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com