1

この記事に基づいて HTML5 ServiceWorker API を試しています。記事では、

ユーザーがサイトに移動すると、ブラウザーは Service Worker を定義したスクリプト ファイルをバックグラウンドで再ダウンロードしようとします。Service Worker ファイルが現在のものと比べて 1 バイトでも異なる場合、それは「新しい」と見なされます。

このことから、ワーカーのスクリプト ファイルに何か変更を加えると、古いバージョンのワーカーを参照しているすべてのページが終了したときに起動する新しいバージョンを定義するようブラウザに促すことになると結論付けました。


編集:どうやらブラウザはserviceworker.jsファイル自体をキャッシュしているようです。そのため、新しいバージョンが取得されません。ワーカーファイルのキャッシュを回避する方法を誰か教えてもらえますか? 利用可能なデモをオンラインで調べました ( MDNおよびW3C Webmob の GitHub のものを含む)

これは私のファイル構造です:

|- index.html
|- serviceworker.js // the actual worker
|- serviceworker-cache-polyfill.js
|- serviceworker-registration.js // contains the registration logic for the worker
|- style.css

次の URL を含めるようにキャッシュを構成しました。

  • 「/style.css」
4

2 に答える 2

1

それは確かに動作を説明します。更新ロジックは HTTP キャッシュ コントロール ヘッダーを尊重しますが、最大 24 時間かかります (Cache-control: 1 year ヘッダーで提供される壊れた SW で立ち往生するのを避けるため)。

于 2015-04-09T00:23:14.440 に答える