有没有一种方法可以查询HTML5应用程序缓存的内容?
我正在编写一个使用大量缓存网络内容的iOS应用程序。在离线情况下加载给定页面之前,我想检查页面是否存在于缓存中。如果不存在,我会通知用户必须在线才能查看该内容;如果存在,则会继续加载它。
现在,iOS有自己的URL缓存系统,最初我只是假设可以通过以下方式检查缓存内容:
我正在编写一个使用大量缓存网络内容的iOS应用程序。在离线情况下加载给定页面之前,我想检查页面是否存在于缓存中。如果不存在,我会通知用户必须在线才能查看该内容;如果存在,则会继续加载它。
现在,iOS有自己的URL缓存系统,最初我只是假设可以通过以下方式检查缓存内容:
if ([[NSURLCache sharedURLCache] cachedResponseForRequest:myRequest] != nil) {
// go ahead and load the page
}
else {
// notify the user that the content isn't available
}
我真是太傻了。看来iOS的缓存和HTML5的缓存没有关系:即使我可以在Safari网络调试器中看到URL在HTML5应用程序缓存中,-cachedResponseForRequest:对于任何请求都会返回nil。
那么,有没有一种方法可以查询HTML5应用程序缓存的内容?答案使用Objective-C代码或Javascript都可以,因为我可以从Objective-C执行相关JS。