次のことを行う HTML5 オフライン アプリケーションがあります。
- ページを表示する
- マニフェストを確認する (仕様による)
- ajax リクエストを (Prototype を使用して) 実行して、オンラインかどうかを確認します。
Mobile Safari iOS (Safari、Chrome、Firefox 以外) でのみ次の問題が発生します。
- OK: シナリオをオンラインで実行
- OK: シナリオをオフラインで実行 (平面モード)
- OK: サーバーを停止します。
- KO: サーバーを再起動します
Ajax-Request は実行されますが、オフラインのようにタイムアウトになるまでハングします
回避策
- OK: マニフェストを更新すると、キャッシュが更新されます
- OK: iOS の設定でキャッシュを消去すると
- KO: ajax-request にパラメーターを入れた場合 ( ?d={timemillis} など)
- KO: ajax リクエストは POST にあります
- KO: リクエストにはヘッダーがあります: Cache-Control: no-store および Pragma: no-cache
- KO: MobileSafari を強制終了してリロードすると
- KO: マニフェストの NETWORK 部分には URL が明示されています
だから私は何をすべきかわからない:
- localStorage もクリアするため、モバイル Safari ストレージをクリーニングできません
- サーバー上のマニフェスト ファイルに「アクセス」できません
- ユーザーが常に「機内モード」になるかどうか確信が持てません
質問:
- キャッシュの更新を強制する方法はありますか? (仕様によるといいえ)
- Ajax Request のキャッシュを禁止する方法はありますか? (マニフェスト以外)
- iOS で動作することを示す jsFiddle はありますか?
よろしくお願いします