DataContext被执行多次

时间:2012-04-10 21:59:21

标签: xpages

是否有人注意到xpage中的datacontexts存在问题。在某些情况下,具有多个自定义控件的单个xpage将导致在单个页面加载期间对datacontext进行12次评估?这也会与其他dataSources一起发生吗?

这是一个简单的例子,它被执行了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>

我的应用程序中是否应该使用dataContexts?

3 个答案:

答案 0 :(得分:1)

就像页面上的其他控件一样,可以多次评估datacontext。有关dataContexts优势的更多信息,请参阅here。但在我看来,从您的代码示例中,使用xp:数据源可能会更快,但我不确定。

答案 1 :(得分:1)

与所有其他值绑定一样,如果将#更改为$,则可以多次请求dataContext的value属性,但计算确定该值仅执行一次

答案 2 :(得分:1)

如果您正在使用部分刷新,请注意。我们假设,您的datacontext在id B中并且您在id A上刷新.id B中的datacontext也将被刷新。所有其他数据源也会发生。

我在这里描述了这种行为http://www-10.lotus.com/ldd/xpagesforum.nsf/topicThread.xsp?action=openDocument&documentId=56E9B8537DA50A90852579A6002EAC64#FA00DE3675A456C0852579AB005A1FF4

还有一些关于PMR的提示以及可能的解决方法。