オープンソース・ソフト Drupal を使った Web サイトの構築・サポート・研修

BigPipe について

BigPipe(ビッグパイプ)は Drupal 8.3 から正式に実装された、ページ表示の体感速度を大きく向上させる技術です。

以下は drupal.org にある BigPipe の解説ページの日本語訳です(以下、「Issue cue(課題リスト)」の項目は省略)。

概要

BigPipe モジュールは Drupal 8.1 から Drupal 8 コアに入っている。Drupal 8.2 では(実験的モジュールだったのが)非実験的モジュールへと一歩進み、アルファ版からベータ版になった。そして、Drupal 8.3 では安定版になった!

BigPipe 技術は Facebook で発明された

(BigPipe を利用する場合)Drupal 8 コアに入っている Dynamic Page Cache モジュールも有効にすることを強く推奨する。


BigPipe デモ


仕組み

  • レンダリングの際、パーソナライズされた(ユーザーによって異なる)部分は「プレースホルダー」(スペースを仮に確保しておくもの)に変換される。
  • Drupal 8 は、そのプレースホルダーを置き換えるため、デフォルトでは(「従来型」と呼ばれる)シングル フラッシュ方法(ストラテジー)を使う。すなわち、すべてのプレースホルダーを置換してしまうまで応答を送信しない。
  • BigPipe モジュールで導入された新しい方法では、まず、初期のページを吐き出してしまい、そのあとでプレースホルダーの置換内容をストリームすることができる。
  • この結果、フロントエンド/知覚上のパフォーマンスが大幅に向上する(上記のスクリーンキャスト動画を参照:長さ 40 秒)。

機能

設定なしで高速化が実現!Drupal 8 で改良されたレンダー パイプラインとレンダー API、そして特にキャッシャビリティー メタデータとプレースホルダー自動化機能のおかげで、BigPipe は自動で高速化することができる。

Drupal 8 コア内の Page Cache および Dynamic Page Cache モジュールとの関係

  • Page Cache (page_cache): BigPipe との関連はなし。
  • Dynamic Page Cache (dynamic_page_cache): Dynamic Page Cache 内にページがキャッシュされている場合、BigPipe はメイン コンテンツをずっと高速に送信できる。それは、まさに BigPipe が送り出す必要のあるものが入っているため。

関連モジュール

  • Sessionless BigPipe: ページ キャッシュがないときに BigPipe 技術を利用して高速化
  • BigPipe demo: キャッシュ不可能な部分・パーソナライズされた部分のあるページを BigPipe が高速化するデモ

以下のモジュール・情報も参照(すべて英語)

 

drupal.org からの記事の翻訳および Web 上でのその公開は、そのコンテンツが直接の翻訳であり、元著者が明記されているかぎり、Drupal Association によって許可されています。
Translation of any article from drupal.org and its publication on the Web is permitted by Drupal Association, provided the content is a direct translation and attributed to the original author.