连接的目的是通过只下载一个文件来提高性能,但这意味着每次您更改一些自己的 javascript 时,都会重新编译整个包并进行指纹识别 - 包括像 jQuery 这样的大型库没有改变,如果它们可以单独下载,它们会被缓存,但现在每次都将重新下载 jQuery,作为统一 application.js 的一部分。
我在这里想念什么?最好的方法不是创建两个清单吗 - 一个用于您自己的文件(很小且经常更改),另一个用于库(很大且不经常更改)?
连接的目的是通过只下载一个文件来提高性能,但这意味着每次您更改一些自己的 javascript 时,都会重新编译整个包并进行指纹识别 - 包括像 jQuery 这样的大型库没有改变,如果它们可以单独下载,它们会被缓存,但现在每次都将重新下载 jQuery,作为统一 application.js 的一部分。
我在这里想念什么?最好的方法不是创建两个清单吗 - 一个用于您自己的文件(很小且经常更改),另一个用于库(很大且不经常更改)?
我会试一试,里面有一些猜测......
首先,JQuery 由 Rails 本身提供,根据您的布局,它将来自 CDN。因此,让我们看看可能随时间变化的库。这里有哪些场景?
所以我认为,从网站的角度来看,只有场景 3 可能(有点)慢,这是最不可能的。通常,许多请求的开销比请求的大小更相关。
如果您有时间,只需尝试使用显示所有资源加载时间的工具即可。可能存在一种资源会经常更改的极端情况,因此不应包含在资产管道中,但通常情况下,每次更改都包含大量资源,将它们缓存为一位 blob 有助于避免大量请求。
以下是讨论此问题的一些参考文献: