gpt4 book ai didi

javascript - 是否缓存了 .js 文件?

转载 作者:可可西里 更新时间:2023-11-01 01:50:55 27 4
gpt4 key购买 nike

我最近做了一个网站,我更改了一个 .js 文件,但是当我从 FTP 服务器上删除 .js 文件并上传新文件时,新文件没有显示在网站上。我检查了网站上 .js 文件背后的源代码,这是不对的,它显示的是旧文件的源代码,而不是新文件的源代码,即使旧文件已经消失。那是因为我的浏览器缓存了 .js 文件吗?

注意:我有这个来源

<meta http-equiv="cache-control" content="no-cache" />

在我的页面上阻止浏览器缓存我的页面,我知道这适用于 HTML,但是有了那个源,资源文件是否仍然被缓存?

我的其他页面上没有那行代码,只有我的主页,但是其他页面上仍然引用了 .js 文件,所以也许这就是它被缓存的方式?

此外,有没有办法检查您的浏览器缓存?我使用 Chrome 。

编辑:我刚刚清除了我的浏览器缓存并重新加载了网站,文件现在可以正常工作了,这意味着文件确实被缓存了。所以现在我的问题变成了如何防止资源文件被缓存?

最佳答案

我不认为无缓存 meta 标签是可行的方法。它否定了所有缓存,并破坏了快速访问页面的目的。

此外,据我所知,meta 标记按页面工作,因此如果您有一个没有它的页面引用您的 JS - 它将被缓存。

防止 JS 文件(以及 CSS)被缓存的广泛接受的方法是区分对它们的请求:

比如说,你有:

<script type=”text/JavaScript” src=”somescript.js″></script>

这个会缓存它(除非上面的元标记存在。

你想要的是在每个页面加载时,上面的行看起来不同(URL-wise),如下所示:

<script type=”text/JavaScript” src=”somescript.js?some-randomly-generated-string″></script>

CSS 也是如此。

如果您使用某种 JS 网络 - 如果您给它某种“无缓存”配置选项,它会为您处理。

当然,您也可以使用纯 JS 来完成。某种 Date 相关的字符串是一个选项。


现在,通常情况下,您不想取消所有缓存,所以这样做的方法是在您的 URL 中添加一个版本参数:

<script type=”text/JavaScript” src=”somescript.js?version=1.0.0″></script>

并从那里管理您的脚本。

编辑

不需要任何额外的扩展。除非我完全弄错了,否则“Chrome 开发者工具”内置于所有 Chrome 版本中(当然是测试版和开发版),可以通过按 Ctrl-Shift-I 访问。在那里,在“网络”选项卡中,您可以看到所有请求、内容和 header 。

关于javascript - 是否缓存了 .js 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com