Vaadin @Javascript :清除更新的JS文件的缓存
Vaadin @Javascript : clear cache for updated JS file
我的应用程序中有一个@JavaScript注释,用于从类路径加载.js文件。
现在我已经对文件进行了更新并重新部署(本地),但我总是得到旧版本。 我尝试重新加载所有内容(ctrl + R,ctrl + F5),但这不起作用,而且我不希望用户必须这样做。
我过去使用的一个技巧(没有 Vaadin)是在版本(例如 ?version=1)后附加一个请求参数并更新它,以便 URL 更改。 但显然@JavaScript注释不允许这样做(Vaadin 甚至不尝试加载文件)。
我通过使用Vaadin servlet配置的resourceCacheTime
参数来克服这个问题:
@VaadinServletConfiguration(ui = MyUI.class, resourceCacheTime = 0)
尽管正如我在这里回答另一个问题中所述,它有其局限性。
这是本地缓存JS文件的浏览器功能,与Vaadin无关。
正如你自己弄清楚的那样:如果你想确保用户拥有最新版本的JS文件,你应该将JS文件名重命名为:script_buildNumber.js
。
使用 Chrome 的隐身功能(访问辛辣/令人不快的网站时不要使用它)。
只需在隐身模式下打开浏览器 https://support.google.com/chrome/answer/95464?hl=en 浏览器,浏览器就不会缓存任何内容。
其他浏览器也有此功能(Opera,IE,Firefox,Safari)。
正如我在 1 月 12 日对这个问题的评论中所指出的那样,重命名文件是有效的。 这似乎是目前唯一的方法,尽管它远非理想。
相关文章:
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 浏览器坚持使用旧的html和JS缓存
- Angular.js-$http.get-使用文件中的缓存
- 缓存JS而不更改文件名或在本地清除缓存
- Sammy.js缓存和滚动位置时,返回历史
- Flux+Rreact.js-缓存API请求响应
- 要求js缓存设置urlArgs半身像的设置文件
- IE7中的JS +缓存问题
- 禁用永久节点.js缓存
- 微风.js缓存限制?或浏览器
- 一旦 js 缓存在浏览器中,MathJax 就会停止工作
- jquery.js缓存在浏览器中吗?
- 使用require.js缓存时进行调试
- backbone.js缓存集合并刷新
- Express.js缓存请求结果与动态数据
- Jquery和篮式js缓存
- iOS 4 Safari和Android 2.3浏览器Modernzr/matchMedia/Inquire.js缓存问
- 使用JS缓存图像
- Js - 缓存文件,打开它,检测更改并上传
- 在没有 js 缓存的情况下在 MVC 中加载部分视图的最佳实践是什么