所以我有一个使用ApplicationCache存储离线数据的应用程序。简而言之,对于没有启用离线数据的用户,它会默默地死亡,最常见的原因是他们已关闭历史记录或正在使用隐私浏览,我想抓住这个并给用户一个明确的错误。
出现这可以通过检查缓存的状态来检测,当没有缓存时它将返回0 UNCACHED
但是我不确定这是否意味着没有缓存尚未,或者没有缓存保证(因为应该有,有些东西是错误的)。 official definition不太有用:
UNCACHED (numeric value 0)
The ApplicationCache object's cache host is not associated with an application
cache at this time.
实际上,在cache.status==0
上中止似乎至少在Firefox上运行良好。我做得对吗,还是有更好的方法?如果有人可以挖掘状态图,那就加分了。
更新:不,如果用户之前从未访问该页面,它也会返回0 / UNCACHED。碣!
答案 0 :(得分:1)
在error
上收听applicationCache
事件。如果激活applicationCache.status===applicationCache.UNCACHED
,则许多中的一个原因是禁用了缓存。向用户发送的消息可能建议关闭缓存。