0

xpages のデータコンテキストの問題に気付いた人はいますか? 特定のシナリオでは、複数のカスタム コントロールを含む 1 つの xpage で、1 ページの読み込み中に datacontext が 12 回評価されることになります。これは他のデータソースでも発生しますか?

これは3回実行される簡単な例です!!

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:this.dataContexts>
        <xp:dataContext var="doc1">
            <xp:this.value><![CDATA[#{javascript:var doc:NotesDocument = database.createDocument();
doc.replaceItemValue("Form", "frmContact");
doc.replaceItemValue("fldFirstName", "test");
print("got here");
return doc;}]]></xp:this.value>
        </xp:dataContext>
    </xp:this.dataContexts>
    <xp:inputText id="inputText1" value="#{doc1.fldFirstName}"></xp:inputText>
</xp:view>

アプリケーションで dataContext を使用すべきではありませんか?

4

3 に答える 3

1

他のすべての値バインディングと同様に、#を$に変更すると、dataContextのvalue属性が複数回要求される場合がありますが、その値を決定するための計算は1回だけ実行されます。

于 2012-04-11T04:40:59.093 に答える
1

ページ上の他のコントロールと同様に、データ コンテキストは複数回評価できます。dataContexts の利点の詳細については、こちらを参照してください。しかし、私の意見では、あなたのコード例から、xp:data ソースを使用する方が速いかもしれませんが、よくわかりません。

于 2012-04-10T22:35:08.390 に答える
1

また、部分更新を使用している場合は注意してください。データコンテキストが ID B にあり、ID A で更新を行うとします。ID B のデータコンテキストも更新されます。他のすべてのデータ ソースでも発生します。

ここでこの動作について説明しましたhttp://www-10.lotus.com/ldd/xpagesforum.nsf/topicThread.xsp?action=openDocument&documentId=56E9B8537DA50A90852579A6002EAC64#FA00DE3675A456C0852579AB005A1FF4

また、PMR に関するいくつかのヒントと、これに対する可能な回避策もあります。

于 2012-04-11T04:55:16.437 に答える