是否有人注意到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?
答案 0 :(得分:1)
就像页面上的其他控件一样,可以多次评估datacontext。有关dataContexts优势的更多信息,请参阅here。但在我看来,从您的代码示例中,使用xp:数据源可能会更快,但我不确定。
答案 1 :(得分:1)
与所有其他值绑定一样,如果将#更改为$,则可以多次请求dataContext的value属性,但计算确定该值仅执行一次
答案 2 :(得分:1)
如果您正在使用部分刷新,请注意。我们假设,您的datacontext在id B中并且您在id A上刷新.id B中的datacontext也将被刷新。所有其他数据源也会发生。
还有一些关于PMR的提示以及可能的解决方法。