我如何检查用户缓存中的Javascript文件。如果他在刷新页面或一段时间后访问站点,我无需再次下载该JS文件。 JS文件是否会在网站关闭后清除。
我如何检查用户缓存中的Javascript文件。如果他在刷新页面或一段时间后访问站点,我无需再次下载该JS文件。 JS文件是否会在网站关闭后清除。
一个javascript文件是否被缓存取决于你的Web服务器配置,用户浏览器配置以及你的服务器和用户之间的任何HTTP代理服务器的设置。你唯一能够控制的是如何设置你的服务器。
如果你想最大限度地提高javascript被缓存的机会,那么你的服务器需要发送正确的HTTP头信息与javascript文件一起。如何做到这一点取决于你使用的Web服务器。
以下是几个可能有所帮助的链接:
Apache - http://httpd.apache.org/docs/2.0/mod/mod_expires.html
据我所知,检查Javascript文件是否被缓存仅适用于来自相同域的文件。
您可以像这样检查它:
try {
await fetch("https://YOUR-DOMAIN.org/static/build/js/YOUR-FILE.js",
{method:'Head',cache:'only-if-cached',mode:'same-origin'});
} catch (error) {
console.error(error);
}
如果内容被缓存,你将会收到200
的返回值,否则会抛出错误。
浏览器会自动管理其缓存。然而,你可以使用各种机制来控制它。
研究各种HTTP缓存头,例如:
在客户端缓存方面,Expires头是最关键的。如果你设置一个远期的Expires头(例如10年),浏览器理论上不会再次向服务器请求该文件。当然,在文件内容更改时,你需要一种方法来更改文件名。大多数人通过向文件路径添加构建编号来管理此操作。
浏览器会为您处理缓存。
缓存何时清空部分取决于浏览器设置,部分取决于您发送的标头。如果您设置了一个“Expires”标头,则在其过期之前,浏览器不应重新请求该文件。阅读有关HTTP标头的信息可能会对您有所帮助。