我们有一个非常复杂的页面,其中包含一些部分刷新,用于从多个源获取数据并利用DOJO和jQuery。一切都正常,没有问题。 但是,当页面在不同选项卡上的同一浏览器中多次打开时,它似乎以某种方式丢失了它的会话。部分刷新不再起作用,它继续执行before和afterPageLoad。 客户端的一切仍然有效,但对服务器的任何调用最终都无济于事。 当我们非常快速地复制页面时,如果允许页面完全加载,问题似乎不那么频繁,则会发生这种情况。 告诉浏览器不要缓存似乎会使情况变得更糟,所以它可能与流量太大有关。 这些页面确实使用了很多viewScope来存储数据,但没有使用sessionScopes。
任何值得关注的提示都会受到赞赏。
答案 0 :(得分:0)
您是丢失了viewScopes还是整个会话? (对于需要身份验证的应用程序,在完全刷新页面时会提示您再次进行身份验证。听起来不会发生这种情况,但我不确定。)
Xsp Properties有一个设置,用于确定当前会话的每个页面在内存或磁盘中存储的页数。因为当前会话意味着浏览器会话,您可能会打开它转储页面的很多页面,因此也会将viewScope转储到最早的选项卡。即使它是相同的URL,如果它是不同的选项卡,它也会将其视为单独的页面。保留的页数存储在Xsp Properties的持久性选项卡中。我不记得默认是什么,但16响铃。它应该记录在XPages Portable Command Guide和Mastering Xpages Second Edition中。
答案 1 :(得分:0)
毕竟它似乎是页面持久性。我将其更改为40,这次我重新启动了HTTP任务(忽略了最后一次)。 我现在可以毫无问题地加载其他页面。 现在,如果我快速加载40页,在页面加载完成之前重新加载,第一个停止响应。如果我加载它通常' 40次一切都按预期工作。 似乎服务器无法处理快速重新加载。