プログレッシブエンハンスメントとパフォーマンスバジェット

プログレッシブエンハンスメントとパフォーマンスバジェットを組み合わせて、高速で耐障害性のあるWebサイトを構築。最小限のHTML体験から始め、バジェット制約内でCSSとJavaScriptで強化。

Tooling

詳細な説明

プログレッシブエンハンスメントとパフォーマンスバジェット

プログレッシブエンハンスメントは、最小限で機能的なHTML体験から始めて、強化されたCSSとJavaScriptを段階的に追加する開発哲学です。パフォーマンスバジェットと組み合わせると、高速でアクセシブルで耐障害性のあるWebサイトを構築するための強力なフレームワークが生まれます。

強化レイヤー

レイヤー 目的 バジェットへの影響
HTML コンテンツ、構造、フォーム 15-30 KB(最小限)
CSS ビジュアルデザイン、レイアウト 20-60 KB(価値を追加)
JavaScript インタラクティビティ、動的機能 50-400 KB(最高コスト)

バジェットティア

各強化レベルのバジェットティアを定義:

ティア バジェット 体験
コア(JSなし) 50 KB コンテンツ読了可、フォーム動作、リンクナビゲーション
エンハンスド(軽量JS) 150 KB スムーズアニメーション、フォームバリデーション、遅延画像
フル(全JS) 400 KB クライアントサイドルーティング、オフラインサポート、リッチインタラクション

2G接続のユーザーはコア体験(高速、機能的)。4Gユーザーはエンハンスド。WiFiユーザーはフル。

各ティアのテスト

JavaScriptを無効にしてサイトをテストし、以下を確認:

  • すべてのコンテンツが表示される
  • ナビゲーションが機能する
  • フォームが正しく送信される
  • 画像に適切なalt属性がある
  • 真っ白なページにならない

フレームワークサポート

フレームワーク PE対応 備考
Astro 優秀 アイランドアーキテクチャ、デフォルトでJS不要
11ty 優秀 静的出力、JSを明示的に追加
Next.js (SSR/SSG) 良好 サーバーレンダリング、ハイドレーションでJSを追加
Remix 良好 プログレッシブエンハンスメント組み込み
Create React App 不良 クライアントのみ、すべてにJSが必要

ユースケース

パフォーマンスバジェットを伴うプログレッシブエンハンスメントは、多様なオーディエンスにサービスを提供するサイトに理想的です — 地方の2G接続ユーザーからギガビットWiFiのユーザーまで。政府のWebサイト、バンキングポータル、教育プラットフォームは、アクセシビリティと信頼性がナイスツーハブではなく要件であるため、このアプローチの恩恵を受けます。バジェットティアにより、コア体験は常に高速でありながらリッチな機能は対応可能なデバイスと接続で利用可能になります。

試してみる — Performance Budget Calculator

フルツールを開く