0

html5 マニフェストを使用してオフラインで使用するアプリを保存していますが、アプリがオンラインになったときにキャッシュ内のデータを更新できるようにしたいと考えています。私は周りをよく見ましたが、私を助けるためにまともなものを見つけることができません.

4

1 に答える 1

2

サーバー上のマニフェスト ファイルを変更するだけです。ブラウザは、最後にすべてのアセットをキャッシュしてからマニフェスト ファイルが変更されているかどうかを確認し、変更されている場合はupdatereadyイベントを発生させます。次に、ブラウザはすべての新規/変更されたアセットをリクエストし、それらをキャッシュします。次にページが読み込まれると、新しいアセットが使用されます。ページを強制的にリロードすることで、ブラウザが新しいアセットを取得したらすぐにそれらを使用するようにすることができます。

if ('applicationCache' in window) {
  // Check if a new cache is available on page load.
  window.addEventListener('load', function(e) {
    window.applicationCache.addEventListener('updateready', function(e) {
      if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
        // Browser downloaded a new app cache.
        try { window.applicationCache.swapCache() } catch(err) { }
        // Swap it in and reload the page to get the new hotness.
        var reload = confirm('A new version of this site is available. Load it?');
        if (reload) window.location.reload();
      }
    }, false);
  }, false);
}
于 2013-10-02T18:40:13.413 に答える