应用程序缓存清单 - 从“清单”中删除后仍保留缓存中的文件?

时间:2012-06-15 07:29:02

标签: cache-manifest

每次客户端访问站点时,应用程序缓存都会自动检查和更新文件。让我们说只有点击一个按钮才能更新缓存。单击将“清单”添加到标记,仅用于该请求。在下一个请求中,删除“清单”。

文件是否仍然在缓存中,或者是否被浏览器删除了?

如果未在标记中定义清单,是否仍会使用清单缓存文件?

2 个答案:

答案 0 :(得分:1)

文件仍然在缓存中! 这里的问题是:appcache文件将一直被使用。缓存中的页面仍保留清单条目。因此,您首先必须删除服务器端的条目,然后更新清单内容本身,以便代理再次在appcache中更新页面,现在没有该清单条目。

答案 1 :(得分:0)

我知道这是一个老问题,但令人惊讶的是,关于此事的信息很少。

结合Marvin的回答,您可以利用清单中一个鲜为人知的功能来清除缓存:

  

如果无法检索CACHE部分中提到的任何文件,   整个缓存将被忽略。

http://appcachefacts.info/

因此,在更新清单之后,您需要做的就是让使用它的文件指向不存在的清单文件,然后应该转储所有内容。

您可以使用一点点PHP来使事情更清洁:

<?php
$CACHE = false;
?><!DOCTYPE html>

<html manifest="<?php if(!$CACHE){echo "BREAK";} ?>manifest.php">