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

Priorityを制するものはローディングを制す

Edward Fox
September 26, 2023

 Priorityを制するものはローディングを制す

2023/09/26 We Are JavaScripters! @42nd

Edward Fox

September 26, 2023
Tweet

More Decks by Edward Fox

Other Decks in Technology

Transcript

  1. • Priority Hints ◦ Renderer側の制御(ブラウザのタブ、JSランタイム) • Priority Header ◦ ネットワーク側の制御

    • 文字通り、通信の「優先度」を制御するための情報 • 完全な制御は担保されず、文字通り「ヒント」を提供する程度のもの Priority をコントロールする (1)
  2. • <img fetchpriority=”high”> と記述することでリソースの読み込み優先度を制御する • LCPを上げる施策として割と有効 ◦ LCP = Largest

    Contentful Paint • linkとかiframe要素にも使えるので、必要に応じて画像以外にも付与するのが吉 ◦ ただしCSSは基本的にどのブラウザでも(そのブラウザが持つ優先度制御の中で)最優先されるので、全部の <link rel=stylesheet> に fetchPriority をつけて回る作業は不要 Priority Hints (1): fetchPriority
  3. Priority Hints (2): fetch API • fetch(url, { priority: ‘high’

    }) と書くことで通信の優先度を制御できる • 画像などの要素に限らず、Fetch API を利用し通信を行う際に指定できる • high, low, auto が指定可能(無指定 = auto) • Firefox, Safari では非対応 • 用途がハッキリしたユースケース以外は無指定(auto)で良さそう
  4. このあたりのキーワードに引っかかる人はぜひ懇親会でお話しましょう 🚀 • ServiceWorker • HTTP, CDN • Resource Hints,

    Priority Hints • パフォーマンス, Core Web Vitals • プロダクトマネジメント, 新規事業, データ分析・統計 Let’s talk!
  5. Additional Resources • WICG/priority-hints – Priority Hints • Optimizing resource

    loading with the Fetch Priority API • LCP attribution: a fetchpriority breakdown • fetch() global function • HTTP/3 Prioritization Demystified • Adopting a new approach to HTTP prioritization