サードパーティ製ファサード
Silktide は実際のブラウザーでページを読み込み、動画プレーヤーやチャットウィジェットなど、訪問者が使わない可能性があるにもかかわらず完全に読み込まれる、埋め込み型のサードパーティサービスを探します。これらはファサードに置き換えられます。ファサードとは、誰かが操作したときにだけ実際のサービスを読み込む、軽量なプレースホルダーです。
これが重要な理由
埋め込みは、ページが読み込むものの中でも特に負荷の大きいものです。1つの埋め込み動画プレーヤーやチャットウィジェットだけで、ページの残りの部分を合わせたよりも多くのコードをダウンロードすることがあります。そして、再生ボタンを押したりチャットを開いたりしない大多数の訪問者を含め、すべての訪問者に対してその処理が行われます。この負荷は、速度が最も重要なページの読み込み中に発生します。
ファサードを使うと状況が変わります。訪問者には埋め込みのように見えるもの(再生ボタン付きのサムネイルやチャットバブル)が表示され、クリックしたときにだけ実際のサービスが読み込まれます。ほとんどの訪問者は、その負荷をまったく負担せずに済みます。
修正方法
- 報告された各埋め込みについて、ファサードが存在するか確認します。人気の動画プレーヤーやチャットウィジェットには、適切に保守されたオープンソースのファサードがあります。通常、サービス名に「facade」を加えて検索すると見つかります。
- 埋め込みコードをファサードに置き換えます。表示結果はほぼ同じですが、重いコードが操作時に読み込まれる点が異なります。
- すぐに使えるファサードがない場合は、同じ考え方を適用します。静的なプレビュー画像を表示し、クリック時に を使って実際の埋め込みを挿入します。
Silktide によるテスト方法
- 実際のブラウザーでページを読み込み、公開されているサービスカタログを使って、ファサードの代替手段があることが知られているサードパーティ製の埋め込みを特定します。
- 各埋め込みの負荷を測定します。コードがブラウザーの を占有する時間と、ページの応答を妨げる時間を測定します。
- 各埋め込みについて、ファイルとタイミングを含めて報告します。これにより、ファサードを使う価値があるか判断できます。
トラブルシューティング
訪問者がすぐに埋め込みを操作する場合
ファサードを使うと、訪問者が最初に操作したときに、実際のサービスの読み込みによる短い遅延が発生します。大半の訪問者がすぐに使う埋め込みでは、このトレードオフに見合う価値がない場合があります。このチェックは候補を示すものであり、採用するかどうかはユーザーが判断します。ポインターが近くでホバーしたときなど、より目立たないシグナルで事前読み込みすることもできるため、遅延の大部分を隠せます。