【发布时间】:2014-04-19 12:29:24
【问题描述】:
我们正在使用“manifest.appcache”文件来控制我们网站上的应用程序缓存。应用程序的一部分应该可以离线访问,这意味着一些页面在 html-tag 中的清单上有引用,而另一些则没有。
有没有办法检查缓存是否为空(从所有页面)?
示例 页面 A 仅在线提供,因此未引用清单。页面 B 在线和离线都可用,因此引用清单。现在我们要检查页面 A(仅限在线)是否已缓存页面 B(缓存不为空)。
【问题讨论】:
我们正在使用“manifest.appcache”文件来控制我们网站上的应用程序缓存。应用程序的一部分应该可以离线访问,这意味着一些页面在 html-tag 中的清单上有引用,而另一些则没有。
有没有办法检查缓存是否为空(从所有页面)?
示例 页面 A 仅在线提供,因此未引用清单。页面 B 在线和离线都可用,因此引用清单。现在我们要检查页面 A(仅限在线)是否已缓存页面 B(缓存不为空)。
【问题讨论】:
无法检查缓存是否为空或缓存中是否有页面(带有应用程序缓存)。
如果你真的需要这样做,你可以使用两种解决方案:
您可以使用 cookie 来跟踪缓存中加载的网站。这带来了新的问题:如果用户清除 cookie 而不是应用程序缓存怎么办?
更简洁的解决方案是使用 IndexedDB 或 HTML5 文件系统来保存内容并仅缓存该内容的包装器。您可以将包装器缓存到开头,然后您可以使用我提到的 API 处理内容(我使用了这个)。这样您就可以简单地检查页面是否在缓存中。
很抱歉回答我自己的问题,但我希望这可以节省一些时间。
【讨论】: