設計上、クライアント デバイスがオフラインの場合、またはクライアント デバイスがオンラインでサーバーにアクセスできる場合、HTML5 オフライン サポート (AppCache) が機能します。その後、アプリケーションをキャッシュし、デバイスがインターネットにアクセスできないときにブラウザーでアプリケーションを再度開いて (更新して)、ブラウザーは AppCache からアプリケーションを読み込みます。この場合、ブラウザーは appcache マニフェストをフェッチしようとしません(オフラインであることを認識します)。
しかし、デバイスがオフラインでない場合を考えてみましょう。それはまだインターネットに接続しています。しかし、私のサーバーはダウンしています。これにはさまざまな理由が考えられます (ハードウェア障害、AppPool の停止、IIS スロットリング、DNS エラーなど)。この場合、ブラウザでキャッシュされたアプリケーションを開くと、appcache マニフェストを取得しようとし、404 エラー (見つかりません) が発生します。その後、ブラウザはアプリの AppCache をクリアします! そのため、次回の実行時に AppCache から読み込まれず、404 エラー「ページ」が表示されます。オフライン作業はもう必要ありません。
オフライン モードの機能がサーバーにアクセスできない理由に依存しているのは、私には奇妙に思えます。なぜユーザーとして注意する必要があるのですか (インターネットに接続していない、またはサーバーがダウンしている)。
だから私の質問は: デバイスがオンラインであるが、そのサーバーに到達できないときにアプリケーションを動作させる方法を知っている人はいますか?
理想的には、window.applicationCache のエラーイベントをキャッチして、「大丈夫です。キャッシュを使い続けてください。廃止しないでください」と伝えることができるはずです。