0

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

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

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

我的最佳解决方案是稍微更改清单,然后浏览器去获取任何更改的文件,而无需我强迫它。

4

1 回答 1

3

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

# 20130623 025200

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

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

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

于 2013-06-23T06:53:06.683 回答