PWAオフラインキャッシュとブラウザキャッシュ

2354 ワード

manifest_html5_オフラインキャッシュ:https://yanhaijing.com/html/2014/12/28/html5-manifest/PWA:https://imweb.io/topic/5b14f3cbd4c96b9b1b4c4eab
オフラインキャッシュとブラウザキャッシュの違い
オフラインキャッシュでは、ネットワークがないときにオフラインファイルを読み込むことでサイトへのアクセスが可能になりますが、ブラウザキャッシュではブラウザがリソースファイルのキャッシュを行う場合でも、ネットワークがある場合にキャッシュファイルを読み込んでファイルのロード速度を向上させなければなりません.ネットワークがない場合でも、ネットワークが切断されたエラーが表示されます.
オフラインストレージの役割
1、ユーザーはオフラインでアプリケーションにアクセスすることができる.これはいつでもネットワーク状態を維持できないモバイル端末ユーザーにとって特に重要である.
manifest html 5キャッシュ更新
  • オンラインの場合、ブラウザはhtmlヘッダにmanifest属性があることを発見し、manifestファイルを要求し、アプリケーションに初めてアクセスすると、ブラウザはmanifestファイルの内容に基づいて対応するリソースをダウンロードし、オフラインで格納する.アプリケーションにアクセスし、リソースがオフラインで格納されている場合、ブラウザはオフラインのリソースを使用してページをロードし、ブラウザは新しいmanifestファイルと古いmanifestファイルを比較し、ファイルが変更されていない場合は何もせず、ファイルが変更された場合は、ファイル内のリソースを再ダウンロードしてオフラインで格納します.
  • がオフラインの場合、ブラウザはオフラインで格納されたリソースを直接使用します.
  • 
    
    
    
    The content of the document......
    
    
    
    

    Service Worker
    Service Workerとは
    Service WorkerはWeb Workerです.本質的には、メインブラウザスレッドとは別に実行されるJavaScriptファイルであり、ネットワーク要求をブロックしたり、リソースをキャッシュしたり、キャッシュからリソースを取得したり、プッシュメッセージを渡したりすることができます.
    Workersはプライマリ・スレッドとは別に実行されるため、サービス・ワークは関連するアプリケーションとは独立しています.これにより、次の結果が得られます.
  • サービスWorkerはブロックされていない(完全に非同期に設計されている)ため、同期XHRおよびlocalStorageはサービスWorkerで使用できません.
  • アプリケーションがアクティブでない場合、サービスWorkerはサーバからプッシュメッセージを受信することができる.これにより、ブラウザで開かれていない場合でも、アプリケーションがユーザーにプッシュ通知を表示できます. ブラウザが実行されていない場合に通知を受信できるかどうかは、ブラウザがオペレーティングシステムとどのように統合されるかによって異なります.たとえば、デスクトップ・オペレーティング・システムでは、ChromeブラウザとFirefoxはブラウザの実行時に通知を受け取るだけです.しかしながら、Androidは、プッシュメッセージを受信したときに任意のブラウザを起動し、ブラウザの状態にかかわらず常にプッシュメッセージを受信する.詳細については、Matt GauntのWeb Push BookのFAQを参照してください.
  • Service WorkerはDOMに直接アクセスできません.ページと通信するためには、postMessage()メソッドを使用してデータを送信し、messageイベントリスナーを使用してデータを受信する必要がある.

  • Service Workerの注意事項:
  • Service Workerは、ページからのネットワークリクエストの処理方法を制御するプログラマブルなネットワークエージェントです.
  • Service WorkerはHTTPSのみで実行できます.Service Workerは、ネットワークリクエストをブロックして応答を変更できるため、非常に悪い「man-in-the-middle」攻撃をもたらします. Letsencryptのようなサービスでは、SSL証明書を無料で取得してサーバにインストールできます.
  • Service Workerは、使用しないときはアイドル状態になり、次回の必要に応じて再起動します.イベント間に存在し続けるグローバルな状態に依存することはできません.再起動時に保持および再利用が必要な情報がある場合は、IndexedDBデータベースを使用します.
  • Service WorkerはPromisesを広く使用しているので、Promisesに詳しくない場合は、読むのをやめてPromisesの紹介を学ぶべきです.