HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 有没有办法查询HTML5应用程序缓存?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法查询 HTML5应用程序缓存的内容

我正在编写一个使用大量缓存Web内容的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的缓存不相关:-cachedResponseForrequest:对于任何请求都返回nil,即使我可以看到URL在HTML5应用程序缓存中(使用Safari Web调试器).

那么,有什么方法可以查询HTML5应用程序缓存的内容吗?如果答案使用Objective-C代码或Javascript并不重要,因为我总是可以从Objective-C执行相关的Js.

解决方法

HTML5 AppCache有两个属性,这意味着在正常操作中不需要这样做:

> AppCache更新操作是原子的,要么更新整个缓存,要么不更新
>创建AppCache后,缓存中的所有文件都将从缓存中提供

最终结果是,对于任何给定版本的清单文件,其中列出的任何加载到浏览器中的文件都将与清单中列出的所有其他文件一致.您需要检查的是window.applicationCache.status检查它是否不是UNCACHED.

还有另一种可能性.如果您按照Dive Into HTML5中的描述“懒洋洋地”将文件添加到AppCache,则可能是您不确定缓存了哪些文件.在这种情况下,你可以调整detecting online state方法之一,我不会给你一个经过全面测试的解决方案,但这里是一般的想法:

>创建一个包含唯一标识符的网页,这种标识符不太可能在页面中正常显示.标识符可以是其他正常页面中的隐藏内容.>将此页面设置为清单中的通用falLBACK.>使用AJAX请求页面.>扫描唯一标识符的响应,如果找到,则表示您知道所请求的页面不在AppCache中

大佬总结

以上是大佬教程为你收集整理的ios – 有没有办法查询HTML5应用程序缓存?全部内容,希望文章能够帮你解决ios – 有没有办法查询HTML5应用程序缓存?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。