我在加载viewPanel时出现草率问题,页面打开但看起来数据源一次加载所有文档,此时尝试打开列出的文档需要很长时间。你能否告诉我你是否可以限制数据源加载的文件数量?提高绩效。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoView var="viewProposta" keysExactMatch="true"
dataCache="nodata">
<xp:this.categoryFilter><![CDATA[#{javascript:var filtro=[];
if(viewScope.statusVoltar!=null){
viewScope.status=viewScope.statusVoltar;
sessionScope.remove("statusVoltar");
}
if(compositeData.filtraUsuario){
filtro.push(sessionScope.usuarioLogado.nome);
}
if(compositeData.filtraEntidade){
filtro.push(sessionScope.usuarioLogado.fk_entidade_funcional);
}
return filtro.join("\\");}]]>
</xp:this.categoryFilter>
<xp:this.viewName><![CDATA[#{javascript:if(!viewScope.minhasPendencias ){
if(compositeData.filtraEntidade){
switch(viewScope.status) {
case "Solicitado":
var vw = "vw_parecer_solicitado_entidade"
break;
...
}
}
if(compositeData.filtraUsuario){
switch(viewScope.status) {
case "Solicitado":
var vw = "vw_parecer_solicitado_usuario"
break;
....
}
}
}else
var vw= "vw_parecer_minhas_pendencias";
return vw;}]]>
</xp:this.viewName>
</xp:dominoView>
</xp:this.data>
<xp:viewPanel value="#{viewProposta}" rows="20" id="viewPanel1"
pageName="/xsp_parecer.xsp" viewStyleClass="bloco" var="doc">
<xp:viewColumn columnName="ds_status" id="viewColumn8"
style="">
<xp:this.facets>
<xp:viewColumnHeader value="" xp:key="header"
id="viewColumnHeader8" style="text-align:center">
</xp:viewColumnHeader>
</xp:this.facets>
<xp:this.rendered><![CDATA[#{javascript:viewScope.statusVector.length>0}]]></xp:this.rendered>
</xp:viewColumn>
<xp:viewColumn columnName="ds_parecer" displayAs="link"
style="width:18.0%">
<xp:this.openDocAsReadonly><![CDATA[#{javascript:var valores:java.util.Vector =doc.getDocument().getItemValue("no_destinatarios");
valores.addAll(doc.getDocument().getItemValue("no_emitente"));
return !valores.contains(sessionScope.usuarioLogado.nome);}]]></xp:this.openDocAsReadonly>
<xp:viewColumnHeader style="text-align:center"
value="Ds_parecer">
</xp:viewColumnHeader>
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action>
<xp:actionGroup>
<xp:executeScript>
<xp:this.script><![CDATA[#{javascript:if(compositeData.filtraEntidade)
return sessionScope.retornarPara="/xsp_lista_propostas_unidade.xsp";
else
return sessionScope.retornarPara="/xsp_lista_propostas.xsp";}]]>
</xp:this.script>
</xp:executeScript>
<xp:openPage target="editDocument"
documentId="#{javascript:doc.getDocument().getUniversalID()}">
<xp:this.name><![CDATA[#{javascript:return "/xsp_"+doc.getDocument().getItemValueString("form").split("_")[1]+".xsp"}]]></xp:this.name>
</xp:openPage>
</xp:actionGroup>
</xp:this.action>
</xp:eventHandler>
</xp:viewColumn>
<xp:viewColumn id="viewColumn2" style="width:13%">
<xp:this.value><![CDATA[#{javascript:
if(!doc.isCategory()){
var fk=doc.getDocument().getItemValueString("fk_proposta");
if(fk == null || fk == "")
fk = doc.getDocument().getItemValueString("fk_proposta_aux");
return @DbLookup("","vw_proposta_pesquisa",fk,"ds_proposta");}}]]></xp:this.value>
<xp:viewColumnHeader id="viewColumnHeader2" value="Proposta"
style="text-align:center">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn columnName="no_processo_adm" id="viewColumn10"
style="">
<xp:this.facets>
<xp:viewColumnHeader value="No_processo_adm"
xp:key="header" id="viewColumnHeader10"
style="text-align:center">
</xp:viewColumnHeader>
</xp:this.facets>
</xp:viewColumn>
<xp:viewColumn columnName="ds_assunto">
<xp:this.facets>
<xp:viewColumnHeader value="Ds_assunto" xp:key="header"
style="text-align:center">
</xp:viewColumnHeader>
</xp:this.facets>
</xp:viewColumn>
<xp:viewColumn columnName="unidade_solicitante"
style="width:8%">
<xp:viewColumnHeader value="Unidade_solicitante"
style="text-align:center">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn columnName="no_remetente" id="viewColumn4"
style="text-align:left">
<xp:viewColumnHeader value="No_remetente"
id="viewColumnHeader4" style="text-align:center">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn columnName="ct_posicao_parecer" id="viewColumn3"
styleClass="centro">
<xp:this.rendered><![CDATA[#{javascript:viewScope.status=="Concluído"}]]></xp:this.rendered>
<xp:viewColumnHeader value="Ct_posicao_parecer"
id="viewColumnHeader3" style="text-align:center">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn columnName="dt_envio" id="viewColumn5"
styleClass="centro">
<xp:this.rendered><![CDATA[#{javascript:viewScope.status!="Concluído"}]]></xp:this.rendered>
<xp:viewColumnHeader value="Dt_envio" id="viewColumnHeader5"
style="text-align:center">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn columnName="dt_conclusao" id="viewColumn1"
styleClass="centro">
<xp:this.rendered><![CDATA[#{javascript:viewScope.status=="Concluído"}]]></xp:this.rendered>
<xp:viewColumnHeader value="Dt_conclusao"
id="viewColumnHeader1" style="text-align:center">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn id="viewColumn7" rendered="false">
<xp:this.value><![CDATA[#{javascript:return ""}]]></xp:this.value>
<xp:button value="Remover" id="killdoc">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="viewPanel1" id="eventHandler1">
<xp:this.script>
<xp:executeClientScript>
<xp:this.script><![CDATA[return window.confirm("Confirma a exclusão?")]]></xp:this.script>
</xp:executeClientScript>
</xp:this.script>
<xp:this.action><![CDATA[#{javascript:var d:NotesDocument=doc.getDocument();
apagarProposta(d);}]]>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:viewColumnHeader value="" id="viewColumnHeader7"
rendered="false">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:this.facets>
<xp:pager partialRefresh="true" xp:key="headerPager"
id="pager1" rendered="true" layout="Previous Group Next">
</xp:pager>
<xp:pager partialRefresh="true" layout="Previous Group Next"
xp:key="footerPager" id="pager2">
</xp:pager>
</xp:this.facets>
</xp:viewPanel>
答案 0 :(得分:4)
你有一些非常昂贵的&#34;您的viewPanel中的内容如
尽量摆脱它们。
如果您访问底层文档中的字段,这是一个性能杀手。在视图列中包含所有需要的数据会更好。
更糟糕的是@DbLookup。它为视图中的每一行执行另一个视图的调用。尝试从按钮或鼠标悬停中调用@DbLookup。
答案 1 :(得分:0)
加载的文档数取决于定义的行数。 ViewNavigator功能经过优化,仅显示当前页面的功能以及更多功能。
例外情况是,如果寻呼机将alwaysCalculateLast
设置为true
。如果是这样,它需要遍历整个视图,以便计算出它需要显示的页码。