在 page1.html 上说我需要 mootools.js 和 main.js ......我猜这些工具应该生成一个缩小的 js 文件(比如 min1.js)。然后在 page2.html 上我需要 mootools.js、main.js 和 page2.js ......这些工具是否服务于 min1.js (已经被浏览器缓存)和 page2.js ?或者他们是否结合了这 3 个 .js 文件并提供需要被浏览器再次完全缓存的缩小文件?
谢谢
在 page1.html 上说我需要 mootools.js 和 main.js ......我猜这些工具应该生成一个缩小的 js 文件(比如 min1.js)。然后在 page2.html 上我需要 mootools.js、main.js 和 page2.js ......这些工具是否服务于 min1.js (已经被浏览器缓存)和 page2.js ?或者他们是否结合了这 3 个 .js 文件并提供需要被浏览器再次完全缓存的缩小文件?
谢谢
假设您使用的是 Apache 模块 mod_pagespeed,因为您用它标记了问题,但没有提及您是否使用...
如果打开ModPagespeedEnableFilters combine_javascript
(默认禁用),它将在整个页面上运行。根据文档:
此过滤器生成的 URL 本质上是所有被组合的 CSS 文件的 URL 的串联。
page1.html 将结合 mootools.js、main.js 和 page1.js;page2.html 将是 mootools.js、main.js 和 page2.js。
那么,要回答您的问题,是的,它会缓存重复的 JavaScript 文件的多个副本。
然而,
默认情况下,过滤器会将来自不同路径的脚本文件组合在一起,将组合元素放在两个来源共有的最低级别。在某些情况下,这可能是不可取的。您可以通过以下方式关闭该行为:
ModPagespeedCombineAcrossPaths off
如果您保留此行为,并将文件分散在您想要组合的路径中,您可以将它们分开,以便将公共脚本组合为一个,而单独的脚本将自行组合。这将减少大型通用库的重复。