如何在 Dart 中缓存半身像

How to cache bust in Dart

我正在用 Dart 开发一个 Web 应用程序,打包在 tomcat 6 中作为可部署的 .war。这个应用程序被一群客户使用,都是 Google Chrome。

每次我重新发布新版本时,每个客户端都必须清除浏览器缓存才能看到更新的文件:这很烦人,除了向所有人广播邮件外我找不到任何解决方案"Please clear the browser cache".

理想的解决方案不是完全禁用缓存,而是让浏览器尽可能快地缓存所有内容,我可以根据自己的意愿控制它。

我不确定你的问题到底是什么。 没有什么特定于 Dart。缓存由浏览器处理,具体取决于过期 headers 服务器 returns 对请求的响应。

你可以做的就像这里解释的那样 Force browser to clear cache or Forcing cache expiration from a JavaScript file,让客户端应用程序频繁轮询服务器以获取更新,然后重定向到新的 URL。您可以在服务器上实施某种重定向或忽略版本 URL 查询参数,以便能够实际保持资源的相同名称。

另一种可能是使用 AppCache 并提供立即过期的清单文件。当您有更新版本时修改清单文件,使客户端重新加载清单中列出的资源 (https://whosebug.com/a/13107058/217408, https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache, http://alistapart.com/article/application-cache-is-a-douchebag#section4)。