xpages:多个部分刷新无法正常工作

use*_*448 3 xpages

请帮忙.当我在xPages中运行单个XSP.partialRefreshGet并且它正在工作时.但是,在获得多个部分刷新时它不起作用.有什么不对吗?请帮助和谢谢.

<xp:scriptBlock id="scriptBlock1">
    <xp:this.value>
        <![CDATA[
        setInterval(function() {


XSP.partialRefreshGet("#{id:refreshPanel}", {
 onComplete: function() {
     XSP.partialRefreshGet("#{id:refreshPanel2}", {});
    }


} })
            }, 1000)
        ]]>
    </xp:this.value>
</xp:scriptBlock>
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 11

进行部分刷新时,会在XSP对象中设置一个锁定,该锁定将停止所有partialRefreshes,直到当前运行的刷新完成或特定时间结束(默认为20秒).

要更改此行为,您可以执行以下两项操作:

  1. 改变intervall
  2. 允许重新安排

但在这两种情况下,这对于您的交互式刷新问题来说不是一个好的选择,因为这会在服务器仍在处理已发送的请求时使用无用的请求充斥服务器.

相反,您应该在刷新完成(或失败)时调用刷新.像这样的东西:

<xp:scriptBlock id="scriptBlock1">
   <xp:this.value>
      <![CDATA[
        function doIt(){
           XSP.partialRefreshGet("#{id:refreshPanel}", {
              onError: "restart()",
              onComplete: function() {
                 XSP.partialRefreshGet("#{id:refreshPanel2}", {
                    onComplete: "restart()",
                    onError: "restart()"
                 });
              }
           });
        }

        function restart(){
           window.setTimeout( "doIt()", 1000 );
        }

        doIt();
    ]]>
</xp:this.value>
Run Code Online (Sandbox Code Playgroud)

PS我从脑中输入了这个,没有检查计算机上的代码.