Java XPages:beforePageLoad运行多次之前。。。为什么?

Java XPages:beforePageLoad运行多次之前。。。为什么?,java,event-handling,scope,managed-bean,Java,Event Handling,Scope,Managed Bean,我们有一个XPages应用程序,它有一个母版页(比如M.xsp)和几个子页,都在母版页上单独的iframe中(在单独的选项卡中加载为A.xsp、B.xsp和C.xsp)。一般来说,应用程序运行良好。每个子页面不应该干扰其他页面,据我所知,它不会。一些与页面相关的数据存储在viewScope变量中,但对于我们开发的最重要的部分,托管bean的数据大部分也存储在viewScope变量中 现在,我们看到的是: 在页面A上,我们进行了几次单击,并进行了一些AJAX调用,以从服务器获取数据 我们切换到B页

我们有一个XPages应用程序,它有一个母版页(比如M.xsp)和几个子页,都在母版页上单独的iframe中(在单独的选项卡中加载为A.xsp、B.xsp和C.xsp)。一般来说,应用程序运行良好。每个子页面不应该干扰其他页面,据我所知,它不会。一些与页面相关的数据存储在viewScope变量中,但对于我们开发的最重要的部分,托管bean的数据大部分也存储在viewScope变量中

现在,我们看到的是:

  • 在页面A上,我们进行了几次单击,并进行了一些AJAX调用,以从服务器获取数据
  • 我们切换到B页,向服务器发送3个AJAX数据请求
  • 我们切换回页面A,单击一下再次获取一些数据,然后发生beforePageLoad事件!不用说,页面仍在加载
  • 在同一个页面A上,我们再次单击以获取不同的数据,然后再次触发页面加载 viewScope丢失了,我的页面相关bean丢失了,非常奇怪

    我们进行了检查,但更改专用于XPages的内存量并没有改变任何事情

    XPages 9.0.1,仅限浏览器

    有人能解释一下这种行为吗:beforePageLoad是如何重复执行的?我们如何预防它


    谢谢

    Twas确实与内存中的最大页数有关。每次单击页面B上列表中的一个项目时,都会在另一个iframe中加载一个子页面(B1),使用带有该项目的URL作为参数。列表中的多次单击强制加载许多页面,导致所有其他页面从内存中消失。因此,当我们移回页面A并在那里触发部分刷新时,就好像该页面对于运行时环境是新的一样


    我重写了子页B2以保留在内存中,并在列表值更改时进行部分刷新。速度相当快,并且没有不必要的页面丢失。

    我认为我的问题与:页面a及其所有内存似乎完全消失有关。进一步调查。。。