0

作为我正在构建的支持离线的 Web 应用程序的加载屏幕的一部分(使用缓存清单),我遇到了浏览器兼容性问题。

在最新版本的 Chrome、FireFox 和 Safari 中,我可以下载缓存清单中的文件并离线,但在 iOS 4 Mobile Safari 中,会引发 window.applicationCache.error 事件。我收到的事件参数是完全空的。另外,我在我的 iPad 上启用了调试控制台,但没有相关的错误信息。

有谁知道是否有办法从离线缓存错误事件中提取错误信息?

4

2 回答 2

0

我遇到了一个独特的问题,因为我通过 ASP.NET 通用处理程序 (.ashx) 提供我的脱机清单,而 Safari 完全拒绝打开该文件。我不确定 .ashx 是否是 Safari 中某种类型的受保护文件扩展名,但很难诊断出错误。

我最终通过检查 Safari 是否命中离线清单发现了错误,您可能需要检查服务器日志。

于 2011-02-25T20:09:23.920 回答
0

如果移动版 Safari 永久会遇到缓存错误,但 PC 或 Mac 上的 Safari 会进行缓存,则可能是您已清除浏览器缓存而没有关闭所有浏览器屏幕并关闭浏览器。清除浏览器缓存也会删除应用程序缓存,尤其是缓存数据库。只要打开了浏览器屏幕,移动 Safari 就不会重新创建应用程序缓存数据库。因此,由于缺少数据库,每个应用程序缓存操作都会失败。PC-Safari 从不破坏数据库文件,但会删除数据库中的条目。

据我所知,没有办法通过 JavaScript 检测到这种情况。

于 2011-02-28T17:08:26.937 回答