检查浏览器的js文件缓存

问题描述 投票:13回答:4

如何检查用户缓存中的javascript文件。如果他在一段时间后刷新页面或访问该网站。我不需要再次下载该js文件。关闭网站后,是否会清理js文件。

javascript http web-applications browser caching
4个回答
11
投票

是否缓存javascript文件取决于您如何设置Web服务器,如何设置用户浏览器以及如何设置服务器与用户之间的任何HTTP代理服务器。您只能控制服务器的设置方式。

[如果您希望最大程度地缓存javascript,则服务器需要使用javascript文件发送正确的HTTP标头。确切的操作方式取决于您使用的Web服务器。

以下几个链接可能会有所帮助:

Apache-http://httpd.apache.org/docs/2.0/mod/mod_expires.html

IIS-http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0fc16fe7-be45-4033-a5aa-d7fda3c993ff.mspx?mfr=true


4
投票

浏览器将自动管理其自身缓存中的内容。您可以使用多种机制来控制它。

查看各种HTTP缓存头,例如:

  • 最后修改
  • 到期
  • ETag

Expires标头在客户端缓存中是最关键的。如果您设置了一个很长的Expires标头(例如10年),那么浏览器将不会(理论上)不再寻找该文件的服务器。当然,那么您需要一种在文件内容更改时更改文件名的方法。大多数人通过在文件路径中添加内部版本号来管理此问题。


2
投票

浏览器将为您处理缓存。

何时清空缓存,部分取决于浏览器设置,部分取决于您发送的标头。如果设置Expires标头,则浏览器在文件过期之前不应重新请求文件。阅读有关HTTP Headers可能会有所帮助。


0
投票

要检查是否缓存了Javascript文件,只有如果Javascript文件来自同一域,则是>> afaik。

然后您可以像这样检查它:

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返回如果已缓存

,否则将引发错误。
© www.soinside.com 2019 - 2024. All rights reserved.