0

create-react-appのアプリを作成しました。これはデフォルトでプログレッシブウェブアプリ(これはfileを読み込みます)となります。Service Workerが更新される頻度は?

その結果、新しいコンテンツを展開するたびに、アプリは更新されません。キャッシュされたコンテンツを配信する前に、新しいコンテンツを確認する頻度はどのくらいですか?キャッシュを保存する時間はどのように選択できますか?

答えて

0

これに基づいて、デフォルトでは、ページ要求自体がサービスワーカーを経由しない限り、ページのフェッチはサービスワーカーを経由しません。サービスワーカーの影響を確認するには、ページを更新する必要があります。

ここでは、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によると、が、その後、労働者の新しいバージョンがリフレッシュまたはページのロードで提供され、新しいバージョンがバックグラウンドでインストールされていないが、まだ活性化されている。以前のサービスワーカーを使用しているページが読み込まれなくなったときにのみアクティブ化されます。そのようなページがまだロードされていないとすぐに、新しいサービスワーカーがアクティブになります。

0

サービスワーカーコードの詳細はわかりませんが、除外しない限り、 アセット(通常はインストールイベント)が存在します。 他のURLはfetchイベントハンドラを通過します(またはハンドラが接続されていない場合は直接ネットワークに移動します)。 サービス・ワーカーを更新するまで、プリ・キャッシュを更新するロジックは更新されません。 installイベントとactivateイベントは、サービスワーカーのバージョンごとに1回だけトリガされるため、バージョンごとに1回だけトリガされます。 デフォルトのキャッシュされたアセット(urls)を変更し、キャッシュロジックを変更するか、設定ファイルにプリキャッシュされているファイルを抽象化し、それらのアセットを動的に更新することができます。 アプリケーションの目標が何であるか分からないので、実際の問題への回答は難しいです。

関連する問題