パフォーマンス.
DXPR Builderページの読み込みコストは、モジュールが制御する3つに依存します。エディターJavaScriptの取得元、モジュールがBootstrapをサイドロードするか、保存HTMLが要求するエレメントライブラリーです。このページではコードの実装通りに各項目を説明します。変更内容の判断材料にします。一般的なDrupalの助言(画像圧縮、CDN、ページキャッシュ設定)はここでは繰り返しません。Builderフィールドのキャッシュ動作はキャッシュを参照。
エディターアセットソース
Asset sourceはEditor Assetsセクション(DXPR Studio > DXPR Builder > General Settings配下)にあり、editor_assets_sourceを設定します。
| 値 | ラベル | 読み込み内容 |
|---|---|---|
0 |
Cloud | 6つのエディタースクリプトとcss/dxpr_builder_backend.cssをhttps://cdn2.dxpr.com/<version>/から読み込みます。プロダクトキーをjwtクエリーパラメーターとして付けます。 |
1 |
Local (minified) | dxpr_builder/*.min.js(モジュールディレクトリから)。 |
2 |
Local (unminified) | dxpr_builder/*.js(モジュールディレクトリから)とdxpr_builder/editor.dev。 |
この設定はモジュールディレクトリにローカルビルドがある場合のみ表示されます。ある場合、Cloud設定でもローカルファイルを使うため、クラウドアセットはリリース用にのみ存在します。サイトのソース確認方法です。
drush config:get dxpr_builder.settings editor_assets_source
6つのエディタースクリプトは集約されません。クラウドファイルは外部で、ローカルエントリーはpreprocess: FALSEとdeferで宣言されます。エディターのヘルパーライブラリー(SortableとDraggabilly付きのdxpr_builder/editor.coreなど)は他のライブラリー同様に集約され、以下の訪問者向けファイルも同様です。
Bootstrapサイドロード
Sideload Bootstrap files(dxpr_builder.settings内のbootstrap)には2つの値があります。Bootstrap 5ではフォーマッターがdxpr_builder/bootstrap_5(bootstrap.min.cssとbootstrap.bundle.min.js、重みはいずれも-10)をBuilderフィールドをレンダーする全ページに添付します。None (theme provides Bootstrap)では何も添付されません。
- テーマがすでにBootstrap 5を読み込むか確認します。
- 読み込む場合はオプションをNoneに設定し、訪問者のダウンロードを1つにします。
- 読み込まない場合はBootstrap 5を設定します。負の重みのためテーマ独自のCSSは後に読み込まれます。
訪問者の読み込み内容
エディターアクセスのない利用者向けに、フォーマッターは以下を添付します。
dxpr_builder/coreはBuilderフィールドのある全ページに。dxpr_builder/css/dxpr_builder.css(fetchpriority: high付き)、js/css-register-properties.js、公開デザイントークンです。dxpr_builder/frontend.smooth_scroll(dxpr_smooth_scroll.min.js)はBuilderフィールドのある全ページに。アンカーリンク用です。dxpr_builder/editor.frontend(dxpr_frontend.min.js。ソース2では非minifyファイル)は動的モードでのみ。モジュールは保存HTMLがdxpr_frontend.jsを参照する場合にフィールドを動的モードに切り替えます。エディターはJavaScriptを要するエレメント(カウンター、カルーセル、パララックス、動画背景)を含むページ向けに書き込みます。テキスト・画像・ボタンのみのページは静的のままで、coreとスムーズスクロールスクリプト以外のBuilder JavaScriptは出荷しません。- 各エレメントの
data-dxpr-builder-libraries属性で指定されるライブラリー。
| エレメント | 添付ライブラリー | ファイル |
|---|---|---|
| カウントダウン | elements.counteverest |
CounteverestのCSSとJS、js/counteverest-migrate.js |
| カウンター | elements.countto |
dxb-count-to.min.js |
| アイコン、サークルカウンター | elements.icon_helpersとアイコンセットのライブラリー |
アイコンフォントCSSとフォントファイル |
| ソーシャルリンク | elements.social_icons、elements.font_awesome_6_free、elements.icon_helpers |
Font AwesomeのCSSとフォント |
| 拡大アニメーション付きプログレスバー | elements.bootstrap_progress_extension |
拡張のCSSとJS |
| 入場アニメーション付きの任意エレメント | elements.animate |
dxpr_animations.min.js、native-animations.css |
| Font Awesome 4・5クラスで保存されたエレメント | elements.font_awesome_6_free、elements.font_awesome_v4_shims |
Font Awesomeとv4 shimのCSS |
動的モードではdxpr_frontend.jsが実行直後にGlyphicon、Font Awesome、Bootstrap Iconsのスタイルシートを追加し、他のアセットはページ上のエレメントが必要な場合のみ読み込みます。パララックス効果のセクション用dxb-parallax.min.js(Disable on mobileにBackground effects配下でチェック時は幅481ピクセル未満でスキップ)、YouTube動画背景のセクション用vendor/managed/plyr/dist/plyr.min.jsとそのCSS、カルーセル用css/carousel.cssです。エディターは保存時にページが動的モードを要するか判断し、要する場合はdxpr_frontend.js用の小さなスクリプトローダーを保存HTMLに書き込みます。
ページに配置されたブロックとビューはフィールドのレンダー時にサーバーでレンダーされます。独自のライブラリーはフィールドにコピーされます。
編集者の読み込み内容
権限edit with dxpr builderを持つ利用者向けに、ページは以下も取得します。
dxpr_builder/editor.builder:dxpr_templates、dxpr_global、dxpr_events、dxpr_param_types、dxpr_elements、dxpr_builder。いずれも遅延。dxpr_builder/editor.core:Sortable、Draggabilly、Floating UI、DXBスライダー、lz-string、streaming-markdown、base64-js、ET Line・Pixeden・Glyphiconフォント、css/drupal-integration.css。dxpr_builder/editor.core.styles(css/dxpr_builder_backend.css)、dxpr_builder/editor.validation、dxpr_builder/twig.js、dxpr_builder/dxpr_saved_thumbs、Mediaモジュール有効時はコアのmedia/view。- CKEditor 5(
vendor/managed/dxpr-cke5-superbuild/dist/ckeditor.jsと翻訳ファイル)。テキスト編集の初期化時にdxpr_global.jsが追加します。
Builderフィールドはログイン利用者全員(編集者の有無に関わらず)にmax-age: 0でレンダーされるため、Dynamic Page Cacheは保持せず、ページ読み込みごとにフィールドを再レンダーします。匿名訪問者はキャッシュ済みフィールドを取得します。
画像
ImageエレメントのImageパラメーターで編集者は画像スタイルを選べます。一覧はサイトの全画像スタイルを持ち、存在すればOptimize for fast loadingが先頭、Original image (No resizing)が次です。optimizeスタイルはconfig/optional/image.style.optimize.ymlに出荷されます。1024ピクセル幅に拡大なしで縮小し、WebPに変換します。レイアウトがより広いファイルを要しない限り、コンテンツ画像にはこれを選びます。SVGファイルは画像スタイルを回避します。
Imageエレメントは通常の<img>を書き出します。src、alt、title、インラインの幅・高さ付きです。loading="lazy"やsrcsetは付けないため、1024ピクセルにスタイルされた画像を全ビューポートがダウンロードします。セクション背景画像はStyleタブで設定し、同じ規則に従います。
Videoエレメントはポスター画像設定時に訪問者のクリックまでiframeを遅延します。ページ読み込み時のプレーヤー読み込みを避けるには埋め込み動画にポスターを設定します。
テキストフォーマットフィルター
Apply text format filters to frontend content(format_filters)は、編集者でない利用者向けのフィールドレンダーごとに、フィールドのテキストフォーマットをprocessed_textで実行します。初期状態はオフです。訪問者出力でフィルター実行が必要な場合を除きオフのままにします。