当用户请求页面时,或“即时”(可能使用缓存)构建时。
以及每个的缺点/优点是什么。
当站点从开发移动到实时服务器时。
我总是在开发服务器上有一个未压缩的 JS 版本,在实时服务器上有一个最小化的版本。
这样做的好处是在开发时我可能会遇到 JS 问题并非常简单地修复它,但我需要通过最小化程序运行每个更改的脚本,但对我来说并没有那么多。
在构建或部署到舞台环境时,是压缩 javascript 的好时机。这样,您将有机会在舞台环境中对其进行测试并捕获可能发生的任何错误。
有时,压缩时确实会出现错误。您可能希望包含在压缩之前运行的 jslint 命令行版本,以确保 js 通过。这将最小化但不会消除所有压缩错误。
我想除非您将动态数据添加到 JavaScript(在这种情况下有更好的方法),否则即时运行将是不必要的。IT 只是一项不必要的支出,只会减慢页面加载速度。
就个人而言,我会在部署/构建应用程序时这样做,这真的是一次性的。
我会说你有 js 文件,因为你在源代码控制中对它们进行编码,当你启动自动构建时,作为构建脚本的一部分,它通过压缩器运行所有 javascript 文件。这样,当您将其部署到测试/暂存环境时,您将获得最新的脚本,但也为性能测试进行了压缩,一旦它们投入生产,它们就会如此。
我同意,如果 JS 没有改变,那么动态可能不是真的必要(并且会占用一些 cpu 周期)。
可能会涉及一些中间件,但它们可以检查 JS 是否已更改并仅在请求时对其进行压缩(甚至可能将各种 JS 文件组合成一个结果文件)。
部署时的一件好事也可能是添加一些时间戳或随机字符串作为参数到 JS 链接(例如.../scripts.js?t=cdkjnsccsds7sc8cshcsjhbcs
)。这样,当 JS 更改时,您将使用不同的字符串,并且不会出现缓存问题,因为它是一个新 URL。CSS 也一样。