6

オフラインWebアプリのキャッシュ中に、次のようにブラウザコンソールに表示される完全に有効なエラーを受け取ります。

Application Cache Error event: Manifest changed during update, scheduling retry

エラーが発生したことを通知するリスナーを追加できます。

window.applicationCache.addEventListener('error', function(e){
  //handle error here
}, false);

エラーの詳細、この場合は「更新中にマニフェストが変更され、再試行をスケジュールする」を取得するにはどうすればよいですか?

4

2 に答える 2

1

window.onerrorを使用する必要があります。コールバックには、次の3つのパラメーターを指定できます。

Error message (string)
Url where error was raised (string)
Line number where error was raised (number)

詳細については、これを確認してください: https ://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onerror

于 2013-09-12T14:30:15.170 に答える
1

今日でも有効な問題です。私の例では、エラーログは何も返しません。IE11を使用しています。

<html xmlns="http://www.w3.org/1999/xhtml" manifest="icozum.appcache">

onCheckingイベントが発生しますが、キャッシュステータスが0のonErrorがキャッシュされません。

 window.applicationCache.onchecking = function (e) {
       var doc = document.getElementById("cachestatus");
       if (doc != null) {
            doc.innerHTML += "Checking the cache.\n";
       }
 }

次にonError

window.applicationCache.onerror = function (e) {
    var doc = document.getElementById("cachestatus");
    if (doc != null) {
         doc.innerHTML += "Cache error occurred." + applicationCache.status.toString() + "\n";
         console.log(e);
         console.log("test");
     }
 }

画面の出力は

キャッシュをチェックしています。キャッシュエラーが発生しました。0

onErrorイベントハンドラーのエラーに関する詳細情報はありません。F12を押すと、実際のエラーが発生しました。これがスクリーンショットです。onErrorイベントハンドラーでこれだけの詳細をキャプチャする方法はありますか?

ここに画像の説明を入力してください

そして最後に私は問題を理解しました。エラーはファイルの欠落によるものではありません。アプリのキャッシュファイルは存在しますが、Windowsでは、Visual Studio(2013)/IISは拡張子を認識しません.appcache。次のセクションをファイルに追加する必要がありweb.configます。

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest"/>
  </staticContent>
</system.webServer>
于 2015-08-08T03:40:34.063 に答える