ガイドターゲティングにCSSルールを使用する

最終更新日:

Webアプリケーションのページ上の特定の要素にガイドを添付できます。PendoはCSSセレクターを使用して、Webアプリケーションページの要素にガイドを添付します。

この記事では、Pendoのインストールスクリプトとブラウザ拡張機能の両方に関連するCSSセレクターを使用して、Webアプリケーションの要素にガイドをターゲットする方法について説明します。

CSSルールはフィーチャーのタグ付けにも使用されますが、パフォーマンスに関する考慮事項は同じではありません。フィーチャーのタグ付け用のCSSルールの詳細については、フィーチャーのタグ付けでCSSセレクターを使用するを参照してください。

CSSによるガイドのターゲティング

CSSセレクターがページ上の目的の要素を正しく識別していることを確認します。

  • ガイドをプレビューして、目的の位置に表示されることを確認します。
  • 複数の要素の一致や不安定なセレクターに関する警告が表示されていないことを確認します。セレクターはすぐに評価される可能性がありますが、予期しない結果が返され、ガイドの表示結果に一貫性がなくなる可能性があります。

CSSセレクターの速度

ターゲット要素に正常に添付されるガイドを構築した後、セレクターの速度を考慮します。CSSセレクターはアプリケーション内で頻繁に評価され、ガイドをいつどこに表示するかを決定します。遅いセレクターが多すぎると、アプリケーション内でガイドの表示に問題が発生したり、パフォーマンスに問題が生じる可能性があります。

ビジュアルデザインスタジオでは、選択範囲の下に色分けされたCSS強度バーが表示され、セレクターの速度に関するフィードバックがリアルタイムで提供されます。アプリケーションのパフォーマンスへの影響を最小限に抑えるために、各CSSセレクターが緑色のバー3本で検証されることを目指します。緑色に色分けされた3つの強度バーを持つCSSセレクターは、処理時間が5ミリ秒未満です。このCSSセレクターの処理時間により、Pendoはアプリケーションのパフォーマンスに目立った影響を与えることなく、多くのガイドを管理できます。

ガイドが常に表示されない場合や、Pendoの存在によってアプリケーションが遅くなっているように見える場合、セレクターの速度が原因である可能性があります。

CSSセレクターの速度を改善する

CSSセレクタは一般に高速です。しかし、:contains ルール、カスタムHTML属性セレクターシャドウルート内の要素など、一部のセレクターはPendoの処理に時間がかかることがあります。さらに、ページサイズが大きくなると、これらのセレクターを評価する時間もそれに応じて長くなる可能性があります。

これらのCSSセレクターをより効率的にDOMクエリに改善する方法はいくつかあります。これらのセレクターが遅くなる理由は、一致するものを見つけるためにページ全体を評価する必要がある場合があるからです。セレクターの特異性を高めると、その処理の一部を回避することができます。

Pendoのパフォーマンスの観点から、以下のCSSセレクター効率の階層を考慮してください。

  1. ID、例えば#nav
  2. クラス、例えば.button
  3. タグ名、例えばdiv
  4. 要素コンビネーター、例えばdiv span.header > .button
  5. シャドウルート内の要素、例えば div::shadow li
  6. カスタムHTML属性、例えば[data-value=100
  7. ルールが含まれる場合、例えばdiv:contains("Welcome")

CSS セレクターのパフォーマンスを向上させるには、この階層の上位にあるセレクターを使用してみてください。CSSセレクターをより具体的にすることで、ターゲット要素を見つけるための不要なページ計算を回避できます。

例:

例えば、現在のバッジのCSSセレクタールールがa:contains("New feature")でパフォーマンスバーで赤い場合、階層を評価して、使える要素や上位の階層があるかどうかを確認しましょう。

この例では、<a> 要素が頻繁に変更される動的なクラスを持っているため、このセレクターを使用した可能性があります。この場合、要素は常に<ul>内のリンクタグであり、セレクターをul a:contains("New feature")に変更できます。この変更後、セレクターのパフォーマンスが向上し、強度インジケーターが黄色に移動します。

ページ上のすべての要素にわたってテキストを一致させる代わりに、<ul>タグ内にある<a>タグのみを評価するようになりました。改善されましたが、CSS セレクターの速度を向上させるためにさらにできることがいくつかあります。

例えば、この特定の要素がナビゲーションバーに配置されている場合、代わりに固定クラス名を持つ祖先要素に基づくCSSセレクター.nav-bar a:contains("New feature")を選択することができます。これは、CSSセレクターのパフォーマンスを緑に向上させます。

ビジュアルデザインスタジオのパフォーマンスバーを使用することで、セレクターの組み合わせを試し、ページに最も効率的なルールを開発することができます。遅いセレクタータイプを完全に回避する必要はありません。遅い選択タイプと高速なセレクターを組み合わせることで、ページのパフォーマンスが大幅に向上する可能性があります。

この記事は役に立ちましたか?
11人中3人がこの記事が役に立ったと言っています