我有一个 HTML5 离线应用程序执行以下操作:
- 显示页面
- 检查清单(根据规格)
- 执行 ajax 请求(使用 Prototype)来检查是否在线。
我仅在 Mobile Safari iOS(不是 Safari,不是 Chrome,不是 Firefox)上遇到以下问题:
- OK:在线运行场景
- OK:离线运行场景(平面模式)
- OK:停止服务器 OK
- KO:重启服务器
Ajax-Request 已执行但挂起直到超时,就像它离线一样
解决方法
- 好的:如果我更新清单,缓存就会刷新
- 好的:如果我在 iOS 偏好设置中清理缓存
- KO:如果我在 ajax-request 中放置一个参数(如 ?d={timemillis} )
- KO:ajax 请求在 POST 中
- KO:请求具有标题:Cache-Control: no-store 和 Pragma: no-cache
- KO:如果我杀死 MobileSafari 并重新加载
- KO:清单的 NETWORK 部分明确了 URL
所以我不知道该怎么办:
- 我无法清理移动 Safari 存储,因为它也会清除 localStorage
- 我无法“触摸”服务器上的清单文件
- 我不能确定我的用户将始终处于“平面模式”
问题:
- 有没有办法强制缓存更新?(根据规格没有)
- 有没有办法禁止缓存 Ajax Request ?(清单除外)
- 是否有任何 jsFiddle 证明它可以在 iOS 上运行?
最好的祝福