如果让xpage在浏览器中打开几个小时,那么当我返回并尝试单击寻呼机(它会进行部分刷新)时,它不起作用。那么,如何自动检测到这种情况并强制执行完全刷新?这是完全可能的吗?
发布于 2012-03-05 06:18:57
答案取决于你试图实现的目标,以及你愿意牺牲什么来实现它。局部刷新失败的原因是因为用户的XSP会话已超时,因此有关特定用户的页面视图的信息已过期,不能只是“让它工作”。必须要做的是,要么设计并实现一种方法来维护和重新加载页面的状态,然后必须在新的会话中恢复该状态,要么会话首先需要永远不会过期。第二种方法是最简单的,而第一种方法非常困难。应用程序设置的XPages选项卡上有一个设置,允许您控制应用程序的超时。将该值设置得更高可允许页面保持更长时间的活动。这里有一个权衡,因为会话在内存中的时间越长,所需的内存就越多,这会导致可伸缩性降低。或者,您可以在onError中构建一些逻辑,该逻辑将检测失败的部分刷新,然后执行完全刷新以重新建立会话,但任何会话数据都将丢失。
发布于 2012-03-05 07:06:02
在ExtLib中查找xe:keepSessionAlive控件。它将定期ping服务器,因此将使您的会话保持活动状态。
在太多用户打开浏览器的情况下要注意性能问题。
https://stackoverflow.com/questions/9557814
复制相似问题