首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制缓存从JavaScript文件过期

强制缓存从JavaScript文件过期
EN

Stack Overflow用户
提问于 2010-02-23 17:57:45
回答 4查看 14.1K关注 0票数 10

我在用户的浏览器上缓存了一个JS文件的旧版本,其过期时间设置为10年(从那时起,我已经学会了如何在我的web服务器上正确设置)。我已经更新了JS文件,我希望我的用户能够从中受益。

  • 我的web服务器是否可以强制用户的浏览器清除这个文件的缓存,而不是为一个不同名称的JS文件提供服务?
  • 将来,如果未正确设置expires (偏执狂),我的JS文件会自动过期并在缓存一天之后强制重新加载吗?

编辑:理想情况下,我想要解决这个问题,而不改变承载脚本的页面上的HTML标记。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-23 18:01:03

总之..。不是的。

您可以在脚本标记的源地址的末尾添加一些内容。浏览器将将其视为与当前缓存的文件不同的文件。

代码语言:javascript
复制
<script src="/js/something.js?version=2"></script>

不确定你的其他选择。

票数 19
EN

Stack Overflow用户

发布于 2013-03-13 19:12:01

在HTML5中,您可以使用应用程序缓存,这样您就可以控制缓存何时到期

需要将路径添加到清单中。

<!DOCTYPE HTML><html manifest="demo.appcache">

在您的demo.appcache文件中,您只需将要缓存的每个文件放在

代码语言:javascript
复制
CACHE MANIFEST
# 2013-01-01 v1.0.0
/myjsfile.js

当您希望浏览器下载一个新文件时,可以更新清单。

代码语言:javascript
复制
CACHE MANIFEST
# 2013-02-01 v1.0.1
/myjsfile.js

只要确保使用发布日期或版本(或其他方式)修改缓存清单,当浏览器看到清单已经更改时,它将下载其中的所有文件。

如果清单没有更改,浏览器将不会更新本地文件,即使该文件是在服务器上修改的。

欲了解更多信息,请访问HTML5应用缓存

票数 8
EN

Stack Overflow用户

发布于 2010-02-23 18:01:39

您可以向您的URL添加一个虚拟参数。

代码语言:javascript
复制
<script src='oldscriptname.js?foo=bar'></script>

e: f;b

主要的问题是,如果您设置了一个简单的“过期”头过期,那么具有文件缓存的浏览器甚至不会为它与您联系。即使脚本有办法破解浏览器并清除缓存,您的旧脚本也不会这样做,因此您无法将该功能提供给客户端。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2320500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档