【问题标题】:How to publish changes to HTML5 cached files?如何发布对 HTML5 缓存文件的更改?
【发布时间】:2013-06-19 21:53:10
【问题描述】:

我知道如何通过简单地更改 appcache 清单中的一个字符来告诉浏览器再次下载缓存的文件,但是当我这样做时,我如何确保浏览器下载新文件而不正在做诸如更改文件名之类的事情吗?

我知道我可以发送文件过期标头,但我没有使用它们的经验。他们甚至可以使用 HTML5 缓存吗?我要发送哪些?

我的印象是浏览器不够智能,无法检测文件何时被修改,并且会继续使用缓存文件,直到您通过刷新页面或更改文件名来强制它。我不想这样做,因为这也意味着更新清单并且只是额外的工作。

我的最佳解决方案是稍微更改清单,然后浏览器会自动获取所有更改的文件,而无需我强制。

【问题讨论】:

  • 过期标头与 appcache 配合得很好,学习如何使用它们。
  • @robertc 即使你的评论被认为是个聪明人,我也会对它们进行一些研究。

标签: html caching browser browser-cache


【解决方案1】:

我所做的是将时间戳作为注释添加到清单中

# 20130623 025200

每次我想强制刷新时就更新它。

编辑:正如我在 cmets 中指出的,浏览器将重新下载清单中明确列举的所有文件。对于不在清单中的文件(例如,在 HTML 文件中引用但不在清单中的 CSS 或图像),默认到期优先。

算法在标准中有描述:http://www.w3.org/html/wg/drafts/html/master/browsers.html#downloading-or-updating-an-application-cache

【讨论】:

  • “我知道如何通过简单地更改 appcache 清单中的字符来告诉浏览器再次下载缓存文件”。我已经说过我知道该怎么做,但我的问题是当它改变时,我怎么知道浏览器是否会正确重新下载文件?
  • @Jared 浏览器将重新下载清单中明确列举的所有文件:w3.org/html/wg/drafts/html/master/… 对于清单中没有的文件,默认到期等优先
  • 这就是我所希望的。我会编辑您的答案以包含它,并将其标记为答案。
猜你喜欢
  • 1970-01-01
  • 2011-05-26
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
相关资源
最近更新 更多