Xpages 保持活动控制don';我第一次不工作

Xpages 保持活动控制don';我第一次不工作,xpages,Xpages,我使用了升级包1的Keep Alive控件,我遇到了这个问题 “首次登录应用程序后,Xpages中的控件无法工作 但如果您打开另一个Xpages并返回第一个工作“ 有人知道这个错误吗?应该可以。xe:keepSessionAlive的作用与上面所说的一样,它使会话保持活动状态,直到浏览器页面关闭。可以将其添加到XPage,无需进一步配置。默认情况下,它将在会话结束前30秒ping服务器。您还可以通过将“延迟”属性设置为秒数来更改此时间 我们可能需要了解有关您的场景的更多详细信息,尽管在我尝试的场

我使用了升级包1的Keep Alive控件,我遇到了这个问题

“首次登录应用程序后,Xpages中的控件无法工作

但如果您打开另一个Xpages并返回第一个工作“


有人知道这个错误吗?

应该可以。xe:keepSessionAlive的作用与上面所说的一样,它使会话保持活动状态,直到浏览器页面关闭。可以将其添加到XPage,无需进一步配置。默认情况下,它将在会话结束前30秒ping服务器。您还可以通过将“延迟”属性设置为秒数来更改此时间

我们可能需要了解有关您的场景的更多详细信息,尽管在我尝试的场景中(控件位于默认页面上,以编辑模式打开现有文档),但所有操作都按预期进行。

当加载时间超过30秒时,会发生此问题。即

  • 页面启动加载-启动时间变量
  • 页面加载需要超过30秒,因为dojo-是的,这在现实世界中仍然会发生
  • 页面加载后计时器启动
  • ping发生得太晚了
  • 更简单地说,ping在以下时间间隔发生:。。。(页面加载时间+会话超时值)-30秒

    为了确保在我使用它的地方不会发生这种情况,我将延迟时间从30秒调整为5分钟:

        <xe:keepSessionAlive>
            <xe:this.delay><![CDATA[#{javascript:
    try{
      var delay:int=facesContext.getExternalContext().getSession(false).getMaxInactiveInterval()-300;
      if(delay>0){
        return delay ;
      }
    }catch(e){}
    return ; // failover to default}]]></xe:this.delay>
        </xe:keepSessionAlive>
    
    
    0){
    返回延迟;
    }
    }捕获(e){}
    返回;//故障切换到默认值}]>
    

    不过,如果控件考虑了页面加载时间,那当然是件好事:)

    查看domlog.nsf控件生成的确切url语法。也许在第一次登录后地址栏中就有错误的url,我不知道,因为..但是如果你用firebug检查流量,你就会发现问题所在。我已将布局控件插入我的所有Xpage。仅和重复..仅第一次启动页面不会触发PING…但是如果您进入另一个页面工作。。。或者,如果您按SHIFT+RELOAD work.。但在登录后的第一次不工作,请执行Keep Alive控件的PING