[解決済み] PWAはいつ、どのように更新されるのか?
質問
私の知る限り、PWA の Web サイトで "add to homescreen" をクリックすると、ブラウザは提供されたマニフェスト ファイルとソースを使用して .apk を生成し、通常のアプリと同様にインストールします。
私は、Web サイトを更新すると、アプリも更新されたコンテンツを表示することに気づきました。これは、アプリが Web サイトにアクセスするための単なるラッパーであることを示唆しています。また、Web サイトの更新が即座に表示されないことに気づきましたが、これは内部キャッシュによるものだと思われます。
私の質問は、私の推測が正しいかどうかということです。あるいは、より一般的には、PWA はいつ、どのように更新されるのか、また、クライアント マシン上で強制的に更新する方法はあるのでしょうか。
どのように解決するのですか?
キャッシュシナリオなし(Service workerなし)。 PWAアプリはService Workerを使用したときのみキャッシュされます。Manifest.jsonを使用することで、ホーム画面にアイコンを表示したり、アドレスバーなしでアプリを開いたりすることができます。サービスワーカーがない場合、またはブラウザが対応していない場合、Webページは毎回新しく読み込まれます。キャッシュはありません。
キャッシュオンシナリオ(サービスワーカーあり)。 サービスワーカーが設定されていると仮定すると、サービスワーカーはキャッシュ用に設定されたファイルを遅延ロードまたはプリフェッチすることでキャッシュできます(html、CSS、画像からJSON/XML APIレスポンスまで何でもキャッシュを含めたり除外したりすることが可能です)。
初期キャッシュの後、サービスワーカーはキャッシュを使用して、アプリのネットワークリクエストを キャッシュアプローチ に基づいてキャッシュを使用します。
- キャッシュのネットワークへのフォールバック
- ネットワークからキャッシュへのフォールバック
- キャッシュの後にネットワーク
ほとんどのアプリは プリキャッシュ を選択し、読み込み時に新しいファイルを探し、変更が見つかった場合は次のセッションで読み込むか、ユーザーに更新を促します。このソリューションでは、サービス ワーカーによってキャッシュされた各ファイルには、長いハッシュ文字列が設定されます。各アプリケーションのロード時に、サーバーからハッシュ コードが取得され、どのファイルが更新される必要があるかが調べられ、同じものが別のサービス ワーカーのスレッドで更新されることになります。これは、クロームデベロッパーツールのネットワークタブ -> サービスワーカーのレスポンスで確認できます。
ネットワーク ファーストのアプローチを選択した場合、最初の読み込み時に古いコンテンツを表示することは避けられますが、キャッシュによってもたらされる大きなパフォーマンスの利点は失われます。
関連
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] Androidで現在の時刻と日付を取得する方法
-
[解決済み] ViewPagerでFragmentが表示されるタイミングを決定する方法
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?