create-react-app
のアプリを作成しました。これはデフォルトでプログレッシブウェブアプリ(これはfileを読み込みます)となります。Service Workerが更新される頻度は?
その結果、新しいコンテンツを展開するたびに、アプリは更新されません。キャッシュされたコンテンツを配信する前に、新しいコンテンツを確認する頻度はどのくらいですか?キャッシュを保存する時間はどのように選択できますか?
create-react-app
のアプリを作成しました。これはデフォルトでプログレッシブウェブアプリ(これはfileを読み込みます)となります。Service Workerが更新される頻度は?
その結果、新しいコンテンツを展開するたびに、アプリは更新されません。キャッシュされたコンテンツを配信する前に、新しいコンテンツを確認する頻度はどのくらいですか?キャッシュを保存する時間はどのように選択できますか?
これに基づいて、デフォルトでは、ページ要求自体がサービスワーカーを経由しない限り、ページのフェッチはサービスワーカーを経由しません。サービスワーカーの影響を確認するには、ページを更新する必要があります。
ここでは、3秒後に犬の画像を追加する例です。あなたのサービスの労働者が以前にインストールされている場合
<!DOCTYPE html>
An image will appear here in 3 seconds:
<script>
navigator.serviceWorker.register('/sw.js')
.then(reg => console.log('SW registered!', reg))
.catch(err => console.log('Boo!', err));
setTimeout(() => {
const img = new Image();
img.src = '/dog.svg';
document.body.appendChild(img);
}, 3000);
</script>
また、このUpdating your service workerによると、が、その後、労働者の新しいバージョンがリフレッシュまたはページのロードで提供され、新しいバージョンがバックグラウンドでインストールされていないが、まだ活性化されている。以前のサービスワーカーを使用しているページが読み込まれなくなったときにのみアクティブ化されます。そのようなページがまだロードされていないとすぐに、新しいサービスワーカーがアクティブになります。
サービスワーカーコードの詳細はわかりませんが、除外しない限り、 アセット(通常はインストールイベント)が存在します。 他のURLはfetchイベントハンドラを通過します(またはハンドラが接続されていない場合は直接ネットワークに移動します)。 サービス・ワーカーを更新するまで、プリ・キャッシュを更新するロジックは更新されません。 installイベントとactivateイベントは、サービスワーカーのバージョンごとに1回だけトリガされるため、バージョンごとに1回だけトリガされます。 デフォルトのキャッシュされたアセット(urls)を変更し、キャッシュロジックを変更するか、設定ファイルにプリキャッシュされているファイルを抽象化し、それらのアセットを動的に更新することができます。 アプリケーションの目標が何であるか分からないので、実際の問題への回答は難しいです。