2.13 インライン・リスト

原理

ウェブレットのXSLテンプレートは、WAMの開発者が結果をカスタマイズできるように、大量にパラメータ化されています。

例えば、std_anchorウェブレットは、マウスがその上を通ると表示を変えることができます。開発者はmouseover_classプロパティに値を割り当てると、この動作を実現することができます。以下のXSLTは実行時に、プロパティがセットされているかを確認し、そうであるならば、アンカーにonmouseover/onmouseoutイベントハンドラーを追加します。

 <xsl:if test="$mouseover_class != ''">
    <xsl:attribute name="onmouseover">
       <xsl:text>this.className='</xsl:text>
       <xsl:value-of select="$mouseover_class" />
       <xsl:text>'</xsl:text>
    </xsl:attribute>
    <xsl:attribute name="onmouseout">
       <xsl:text>this.className='</xsl:text>
       <xsl:value-of select="$class" />
       <xsl:text>'</xsl:text>
    </xsl:attribute>
 </xsl:if>
 

Webroutineのデザインが保存されたら、$mouseover_classの値は変わりませんが、このコードはWebroutineが稼動するたびに実行されます。ウェブレットがリスト内にある場合は、リストの各列に対し、このコードが再度実行されます。

多くの場合、パラメータ(ウェブレット・プロパティ)の多くは定数で、実行時の値に左右されません。ですからこれらのプロパティを実行時に毎回適用するのではなく、設計時に適用してほいた方がより効率的です。これは、リストの場合に特に重要です。(大きなリストの場合は特にそうです。)

これがインライン・リストの働きです。インライン・リストが標準リストと異なるのは、XSLが設計時に仕上がることです。設計の時点で適用できる全てのウェブレットのプロパティは解決され、特別拡張エレメントやファンクションを使ってWAMが実行時の値を必要な場所で使用できるようになります。

 

もうお分かりかとは思いますが、設計時にXSLを適用するので、実行時のみに使用可能となる情報(フィールド値など)を持つインライン・リストをカスタマイズできません。これは代償です。このような柔軟性が必要な場合は、標準リストを使用してください。ただし、これが必要でない場合は、インライン・リストによる優れたパフォーマンスの恩恵を受けることができます。