Xpages 当部分刷新不可用时,如何自动刷新页面';不行?

Xpages 当部分刷新不可用时,如何自动刷新页面';不行?,xpages,Xpages,如果一个用户在浏览器中打开一个xpage几个小时,那么当我回来尝试单击寻呼机时(它会进行部分刷新),它就不起作用了。那么,我如何自动检测并强制进行完全刷新呢?有可能吗?答案取决于你想完成什么,以及你愿意做什么。部分刷新失败的原因是,用户的XSP会话已超时,因此有关特定用户的页面视图的信息已过期,无法“正常工作”。必须要做的是,您需要设计并实现一种方法来维护和重新加载页面状态,然后必须在新会话中恢复,否则会话首先永远不会过期。第二种方法最简单,第一种方法很难。应用程序设置的XPages选项卡上有一

如果一个用户在浏览器中打开一个xpage几个小时,那么当我回来尝试单击寻呼机时(它会进行部分刷新),它就不起作用了。那么,我如何自动检测并强制进行完全刷新呢?有可能吗?

答案取决于你想完成什么,以及你愿意做什么。部分刷新失败的原因是,用户的XSP会话已超时,因此有关特定用户的页面视图的信息已过期,无法“正常工作”。必须要做的是,您需要设计并实现一种方法来维护和重新加载页面状态,然后必须在新会话中恢复,否则会话首先永远不会过期。第二种方法最简单,第一种方法很难。应用程序设置的XPages选项卡上有一个设置,允许您控制应用程序的超时。将该值设置得更高,以使页面保持活动的时间更长。这里有一个折衷办法,因为会话在内存中的时间越长,需要的内存就越多,这会降低可伸缩性。或者,您可以在onError中构建一些逻辑,该逻辑将检测失败的部分刷新,然后执行完全刷新以重新建立会话,但任何会话数据都将丢失。

在ExtLib中查找xe:keepSessionAlive控件。它将定期ping服务器,因此将使您的会话保持活动状态


如果有太多用户保持浏览器打开,请注意性能问题。

感谢Frantisek的评论,我在Matt Whites的xpages101会话中看到了这一点,我将不得不再次观看视频,有没有可能告诉这个东西最多只ping一天?xe:keepSessionAlice与应用程序中的sessionTimeout值一起工作,以计算出最佳ping间隔。嗨,Jeremy-你有第一个选项的例子吗?我希望避免第二个选项。Jeremy当部分刷新失败时会触发什么事件,或者我应该像Frantisek提到的那样使用keepSessionAlive ExtLib选项吗?我认为它不会抛出错误。。。下注是部分刷新的一个错误,但我认为当会话到期时,它只会返回一个空结果。因此,我应该按照下面Frantisek和Declan指出的xe:keepSessionAlive的路线进行操作吗?如果您希望它无限期地保持打开状态,可以。如果你想让它打开的时间更长-将应用程序的单独超时设置为更长的时间。