检查浏览器的缓存以查找js文件

时间:2009-02-11 08:43:31

标签: javascript http web-applications browser caching

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

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

浏览器会自动管理它自己的缓存中的内容。但是,您可以使用各种机制来控制它。

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

  • 上次修改
  • 到期
  • 的ETag

在客户端缓存方面,Expires标头是最关键的标头。如果您设置远期的Expires标头(例如,10年),浏览器将不会(理论上)不再向服务器查找该文件。当然,当文件内容发生变化时,您需要一种更改文件名的方法。大多数人通过在文件路径中添加内部版本号来管理它。

答案 2 :(得分:2)

浏览器会为您处理缓存。

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

答案 3 :(得分: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的回信{strong} ,否则会引发错误。