2013-01-24 4 views
6

デザインによるHTML5オフラインサポート(AppCache)は、クライアントデバイスがオフラインであるか、クライアントデバイスがオンラインで、サーバーにアクセスできる場合に機能します。その後、私はアプリケーションをキャッシュし、ブラウザにブラウザを再起動して(リフレッシュ)、デバイスにインターネットアクセスがない場合、ブラウザはAppCacheからアプリケーションを読み込みます。この場合、ブラウザは、でappcacheマニフェストを取得しようとしません(オフラインであることがわかります)。HTML5 AppCache:サーバーにアクセスできないがネットワークにアクセスできない場合にオフラインモードを実装する方法

私のデバイスがオフラインでない場合を考えてみましょう。それはまだインターネット接続を持っています。しかし、私のサーバーはダウンしています。これにはさまざまな理由があります(ハードウェアの障害、AppPoolの停止、IISスロットル、DNSエラーなど)。この場合、ブラウザでキャッシュされたアプリケーションを開くと、appcacheマニフェストを取得しようとし、404エラー(見つからない)を取得します。その後、ブラウザはアプリのAppCacheをクリアします!したがって、次の実行時にAppCacheからロードされず、404エラー "ページ"が表示されません。オフライン作業はこれ以上ありません。

オフラインモードが機能するのは、サーバーにアクセスできない理由によって変わってきます。ユーザーとして気にする必要があるのはなぜですか(インターネットに接続していないか、サーバーがダウンしています)。

私の質問は、のオンラインですが、そのサーバーに到達できないときにアプリケーションを動作させる方法を知っていますか?
理想的には、私はwindow.applicationCacheのエラーイベントをキャッチして、「それは大丈夫です。キャッシュを使用してください。それを廃止してください」と伝える必要があります。

+0

私はChromeでこれをしなかったし、私のキャッシュマニフェストがまだそこにあるどのようなブラウザ、。サーバーをシャットダウンしたがオンライン状態でエラーが発生しました:アプリケーションキャッシュエラーイベント:マニフェストフェッチが失敗しました(-1)が、元のマニフェストは削除されませんでした。 – mattdlockyer

+1

私はChrome 24を使用しています。私は最後のFirefoxで同じ動作をしています。 サーバーをシャットダウンしたときにブラウザがどのようなhttpステータスを取得していますか?私は404を手に入れ、フィドラーで見る。ブラウザのコンソールでは、次のように表示されます。 マニフェストhttp://localhost/ajax/manifest.appcacheを使用してアプリケーションキャッシュからドキュメントをロードしました アプリケーションキャッシュチェックイベント – Shrike

+1

これに関するニュースはありますか?私は今同じ問題に直面している。 – Roland

答えて

0

これはapplication-cache specificationあたりのことはできません。

Otherwise, if fetching the manifest fails in some other way (e.g. the server returns another 4xx or 5xx response or equivalent, or there is a DNS error, or the connection times out, or the user cancels the download, or the parser for manifests fails when checking the magic signature), or if the server returned a redirect, or if the resource is labeled with a MIME type other than text/cache-manifest, then run the cache failure steps.

関連する問題