Xpages 面板部分刷新时xpage性能不佳

Xpages 面板部分刷新时xpage性能不佳,xpages,Xpages,我有一个非常长的基于xpage的表单,需要完成,因此我决定将其分解为一组面板,每个面板都根据复选框组中的选中值进行渲染或不渲染 我的问题是,使用复选框字段的onchange事件处理程序的部分刷新,较大的面板(包含30个左右的字段)需要20秒才能显示。我假设这只是内容的数量,但是如果我从所有面板中完全删除渲染公式,整个表单(包括所有面板内容)最初只需几秒钟即可显示 结构如下: <xp:panel id="allPanels"> <xp:panel id="panel1"&g

我有一个非常长的基于xpage的表单,需要完成,因此我决定将其分解为一组面板,每个面板都根据复选框组中的选中值进行渲染或不渲染

我的问题是,使用复选框字段的onchange事件处理程序的部分刷新,较大的面板(包含30个左右的字段)需要20秒才能显示。我假设这只是内容的数量,但是如果我从所有面板中完全删除渲染公式,整个表单(包括所有面板内容)最初只需几秒钟即可显示

结构如下:

<xp:panel id="allPanels">
   <xp:panel id="panel1"></xp:panel>
   <xp:panel id="panel2"></xp:panel>
   <xp:panel id="panel3"></xp:panel>
</xp:panel>

使用onchange事件刷新“allPanels”

有人知道为什么会有这样的延迟,因为它目前无法使用


非常感谢

您可以尝试将
execId=“YOURCHECKBOXFIELDID”
添加到复选框组的事件处理程序中,该处理程序只会将复选框的值发送到服务器进行部分刷新,而不会发送所有其他字段

另外,看看我在这里对一个类似问题的回答:哪一个可能有用


事实上,我刚刚注意到克努特提到execId点也是对上述问题的回答

@DbLookup对性能尤其不利,您可以在各种可用的博客文章中看到这一点。例如,见。不使用公式语言的API性能会更好——XPages中没有公式语言引擎,一切都是Java。SSJS映射到Java方法@DbLookups映射到多个Java方法(对于每个参数)


另请参见我的网络研讨会“Marty,你没有从第四维度思考”(2016年网络研讨会标签位于)。什么是计算时间是我多年来谈论的一个话题,它准确地解释了为什么它在初始加载时更快。提高性能有多种选择。最好是“页面加载时计算”,而不是“动态计算”<代码>视图。isRenderingPhase()可用于在适当的情况下最大限度地减少计算量。另一种选择可能是在onClick中运行代码来设置viewScope变量并引用这些变量,而不是在原地运行查找。

格式很好,问题是各个面板在做什么,花了这么长时间。这就是拖延的根源。您的应用程序要找出是什么使它在字段中出现类似dblookup的函数?有些视图工作得很慢。。。您可以在视图中研究@today-like函数……您可以尝试从页面中逐个删除面板及其内容,然后将其放回,看看是否可以确定是某个特定面板导致了大部分延迟?从那里,我们将知道在哪里进行进一步的调查。谢谢大家的回复。我已经把它缩小到一个特定的面板,其中包含了一段距离内最多的字段。我所能看到的只是5x数据库查找,但这些都是在同一个数据库中的关键字视图,只有少数文档。它也无法解释为什么面板需要20秒才能部分刷新所有面板,但在初始渲染时只需要1-2秒。我想我必须按照Frantisek的建议使用profile应用程序路线,除非我遗漏了一些明显的东西。删除@DbLookups确实有点不同,但最后我通过计算样式类将有问题的面板更改为使用display:block和display:none显示/隐藏。这样面板内容就可以提前加载,我可以有条件地重新显示。一如既往地感谢保罗!我也看过你的视频,并根据你的建议做了一些额外的修改。