1

マニフェストを更新してページを読み込むときに、変更したスクリプトを開発ツールで確認しました。ありません。ブラウザのキャッシュを読み込むには、常にブラウザのキャッシュをクリアする必要があります。キャッシュを更新するためのリスナーがあります。

$(function() {    
    if (window.applicationCache) {
    applicationCache.addEventListener('updateready', function() {        
        console.log("appcache updated");
            window.location.reload();

    });
    }
}
4

1 に答える 1

3

AppCacheを使用する場合、かなりの落とし穴があります。

私が最初に提案するのは、上記のコードにswapCacheメソッドを追加することです。例えば

   $(function() {    
     if (window.applicationCache) {
       applicationCache.addEventListener('updateready', function() {        
         if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
           window.applicationCache.swapCache();
           console.log("appcache updated");
           window.location.reload();
         }
       });
     }
   }

その他、注意すべき点がいくつかあります。

  • コードを変更するときは、マニフェストファイルを更新してください(これを行っているように聞こえます)
  • デバッグに役立つように、すべてのapplicationEventsにjavascriptハンドラーを追加します。コードについては、このhttp://www.html5rocks.com/en/tutorials/appcache/beginner/の下部をご覧ください。実際、このページ全体を読んで、必ず入手してください。エラーには細心の注意を払ってください。
  • マニフェストが変更されたとしても、ブラウザが自動的に最新バージョンのファイルを取得するわけではないことに注意してください。その後、リクエストを試みますが、通常のキャッシュからそれらを取得する場合があります。これは、キャッシュヘッダーを設定することで回避できます。Firefoxに表示されないHTML5オフラインAppcacheアップデートを参照してください。

また、stackoverflowの他の場所にAppCacheの質問に対するかなりの回答があります。

これらが役に立たない場合は、おそらくいくつかのコードを投稿して、それを解決することができます。

于 2012-07-19T01:49:28.757 に答える