Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PWAとCache API #frontkansai

tiwu
November 02, 2019

PWAとCache API #frontkansai

FRONTEND CONFERENCE 2019 https://2019.kfug.jp/
で登壇した資料です

tiwu

November 02, 2019
Tweet

More Decks by tiwu

Other Decks in Technology

Transcript

  1. # Wataru Taguchi - GameWith Engineer - PWA, Web Components,

    AMP - パフォーマンスチューニングが好き - @tiwu_official - FF14, ストファイ5, Beer, Kyoto Animation 自己紹介
  2. • fetch にイベントを貼る • caches からキャッシュを取得 or 貯める ◦ 無いときはfetch

    で取得 • responeseWith でレスポンスを返す Service Worker がしていること
  3. • fetch にイベントを貼る • caches からキャッシュを取得 or 貯める • responeseWith

    でレスポンスを返す Service Worker がしていること caches? Local Storage…? Session Storage…? indexedDB…? こいつは何者だ・・・?
  4. • Window やWorker で使える • Cache API 単体で使える ◦ Service

    Worker と結びつけて使う必要はない • 有効期限は設定できない • Chrome 開発者ツールから中身が見れる • caches というグローバル変数が存在する Cache API
  5. Cache Interface 追加系 • put (request, response) ◦ request ▪

    StringでURL、Requestオブジェクト ◦ response ▪ Responseオブジェクト ◦ key / value でキャッシュに追加する
  6. • match (request, options) ◦ request ▪ StringでURL、Requestオブジェクト ◦ options

    [optional] ◦ マッチしたResponse Object を返す ◦ マッチしないときはundefined を返す Cache Interface 取得系
  7. • ignoreSearch : boolean ◦ クエリーを無視する(v=1) • ignoreMethod : boolean

    ◦ メソッドを無視する(GET, HEAD) • ignoreVary : boolean ◦ Vary header を無視する options
  8. • keys (request, options) ◦ request [option] ▪ リクエストを指定できる ◦

    options [option] ▪ matchと同じ ◦ keyの配列を取得する Cache Interface その他
  9. • キャッシュの上限や使用量がわかる • quota ◦ 上限 • usage ◦ 現在の使用量

    ※ただし取得できる値はバイトではなく概念値 StorageEstimate
  10. まとめ • PWA における速度は安定して高速であること • 安定した速度はネットワークに依存をしないこと • SW ではなくCache API

    によってキャッシュされる • Cache API はSW 依存ではなく独立したAPI • add, match, delete などLS などと使い方は似ている