103 Early Hints
- Tatsuki Sugiuraさん
1xxのstatus code
- 100番台はリクエストとレスポンスが1:1じゃない
- 仕様は昔からある
- 100 Continueとか101 Switching ProtocolsとかはHttp1.1の1997年
- 103 Early Hintsは2017年
- 103はserver pushで実現できなかったクライアント手動の先読み
- server pushはすでに持ってるのを送ったりとかなってた
- linkのpreloadやpreconnectの対象を返す
- SPAではないHTMLを返すようなケースではリクエストしてからHTMLを受け取るまでクライアントは暇
- その間にEarly Hintsを返してそれをもとに必要なリソースをとる
- レスポンスが多段になる
- 先に返す103と本体の内容
- 使うために
CLSの基本のき
- Ryoma Shindoさん
CLS
- ユーザが予期しないタイミングでレイアウトシフトする量をスコア化した指標
- CoreWebVitalsの1つでSEOにも影響あり
- Lighthouseのスコアだと25%を占める
- スコア
- シフトした画面内に占める割合と移動距離でスコアが決まる
- 計測方法
- PageSpeedInsight
- フィールドデータとラボデータを確認できる
- Layout Instability API
- PerformanceObserverでデータが見える
- 割り込んできた要素ではなく動いた要素が取れる
- PageSpeedInsight
- 要因
- 画像に高さや幅がない
- 固定値指定できないならmin-width/min-heightでも影響を小さくできる
- メディアクエリを組み合わせるとかも
- width:100%/height:autoのような時はaspect-ratioで比率を指定するといい
- うまくいかない時はmin-heightでも
- 固定値指定できないならmin-width/min-heightでも影響を小さくできる
- jsで要素が後から追加される時
- 画像のようにwidthなどで高さを確保
- 差し込まずに重ねて浮かせるとか
- FVに入らないようにするとか
- サイズがわからない時は最大最小を確保して影響を小さく
- Webフォント
- 使わなくていいなら使わない
- CLSへの影響は小さいから気にしないとか
- preloadではやくロード
- BFCacheをなるべく使う
- 初期表示を作るまでスプラッシュスクリーンで隠してしまうとか・・?
- 画像に高さや幅がない
ウェブフォントとパフォーマンス
- Masataka Yakuraさん
ウェブフォントは遅い?
- 遅いと言われる
- 日本語だと特に
- どの辺りが遅いのか
- フォントファイル
- ファイルを読み込むからその分遅くなる
- 複雑な字形をど大きくなる
- グリフ数が多い言語だと大きくなる
- ダウンロードされるまで
- CSSに指定する
- 読み込んですぐダウンロードされるわけじゃない
- htmlの中にマッチした文字があると始まる
- ウエイトやスタイルもまっちしないといけない
- preconnectで事前にコネクションを作る
- GoogleFontsのレスポンスヘッダーにLinkヘッダーで自動で入ってる
- preloadで事前によみこむ
- as="font"で読み込まないとフォントとして使われない
- crossoriginがないと
- preloadは強制だから使われない可能性もある
- ダウンロード
- fetchpriorityはフォントはもともと高め
- ダウンロードされた後
- ブラウザはフォントがダウンロードされるまで少し待ってくれる
- 待ちきれなくてその後に完了したりすると動きが目立ってしまう
- フォントファイル
CDNとうまく付き合う
- Shohei Tanakaさん
CDN
- なぜCDN
- アセットの配信効率よく
- キャッシュして効率よく
- セキュリティ対策
- よくある運用
- 導入度にあまりメトリクスを見てない
- アラートslack通知してるけど見ない
- キャッシュのパージ作業はする
- CDNの障害なんてめったに踏まない
- CDNのパージ
- パージは負荷が高い処理
- ratelimitがある
- 正規表現でファイルの指定はできないものが多い
- invalidateで期限切れ状態に
- 次回再検証が走る
- deleteでキャッシュを消す
- 一気にパージしてしまうとオリジンが耐えられなくなるので注意
- 複数回に分割するとかできるといい
- キャッシュタグ対応してればで分割パージできる
- キャッシュタグでグループ化できる
- CDN障害
パフォーマンスを上げる「UXライティング」
- nagaikazufumiさん