Xpath 组的替代函数,以提高xfrom中的性能

Xpath 组的替代函数,以提高xfrom中的性能,xpath,xforms,orbeon,Xpath,Xforms,Orbeon,我们是否可以使用组以外的其他功能来执行相同的操作。我尝试使用group锻炼的场景是:我在一个表单中有多个页面,在第一个页面上有一个摘要按钮,单击该按钮应显示所有页面的摘要 我们尝试的逻辑是使用group来加入每个单独的页面,方法是使用一个表单变量,当单击summary按钮时该变量变为true,我们在所有页面中检查该变量值,因此当单击summary按钮时,该条件满足并显示所有页面 代码片段 <Xforms:group id="page-1" ref=".[ins

我们是否可以使用组以外的其他功能来执行相同的操作。我尝试使用group锻炼的场景是:我在一个表单中有多个页面,在第一个页面上有一个摘要按钮,单击该按钮应显示所有页面的摘要

我们尝试的逻辑是使用group来加入每个单独的页面,方法是使用一个表单变量,当单击summary按钮时该变量变为true,我们在所有页面中检查该变量值,因此当单击summary按钮时,该条件满足并显示所有页面

代码片段

<Xforms:group id="page-1" 
              ref=".[instance('form')/current-page = '1' 
                      or 
                     instance('form')/summary = 'true']">

使用组fn会大大降低性能。是否有任何方法可以执行相同的场景。请告知。

此时,隐藏组和隐藏案例的工作方式不同:

隐藏组中的控件不相关。 隐藏案例中的控制是相关的。 因此,使用switch/case,服务器必须做更多的工作来维护和更新隐藏案例中控件的状态,但切换到另一个案例非常快:这几乎只是更改HTML中的类的问题,因为所有控件的值都已经存在。对于隐藏组,当切换到另一个组时,该组中控件的值由服务器发送到浏览器。更新这些值可能需要一点时间,特别是当您有很多控件时,比如在重复中


在没有真正运行代码的情况下,很难给出建议,但如果切换所需的时间主要花在浏览器上,则可以研究使用该机制。如果大部分时间都花在服务器上,那么我会调查。请注意,这两个功能都是PE only。

当summary为true时,您希望显示所有页面,否则仅显示当前页面;对吗?您看到的性能问题是什么:Orbeon窗体生成页面或浏览器呈现页面需要很长时间吗?当所有控件都显示为summary='true'时,您在表单中有多少个控件?@Avernet,是的,您是对的,这就是所需的。前面我们使用switch case导航到这些页面。当时导航时间真的很快。为了实现这个摘要视图概念,我们引入了组fn而不是switch case。现在,与以前的方法相比,浏览页面所花费的时间真的非常慢。当summary='true'接近500时显示的控件感谢您的澄清。我在下面贴了一个答案。