使用ui:repeat和AJAX部分刷新JSF页面

时间:2013-12-04 10:29:23

标签: ajax jsf jsf-2 uirepeat

我有一个页面说“主页”(第1页),它看起来像一个Outlook日历页面,显示了大量的行。实际上,列代表“Weeks”,行代表“Products”。功能是用户可以选择产品周组合并为所选周创建报价。理想情况下,由于我们有很多行(产品),我们应该理想地实现分页,但我们没有。

我们使用JSF2(JBoss EAP 6.0附带的Mojarra面孔)。主页使用不同的bean,“详细信息”页面使用不同的bean,两者都在会话范围内。

当用户创建商品时,我们只使用AJAX刷新受影响的单元,而不是刷新整个页面(即Page1)。但是,在双击插槽(商品)时,我们会重定向到显示商品详细信息的其他页面(第2页)。

第1页 - 主页面和第2页 - 详细信息页面。

这里有2个案例:

案例1:用户从主页面转到详细信息页面,只需查看详细信息页面上的信息,然后单击关闭按钮。在这种情况下,我可以在打开详细信息页面之前显示主页面。为此,我们使用了浏览器history.back()。但是,我们遇到了以下问题:

(a)history.back()仅适用于Firefox,不适用于Chrome / IE。 (b)即使我们执行history.back(),页面加载也是清晰可见的,因为我们的页面很重,所以需要几秒钟。我想避免再次重新呈现主页面(即让它看起来像是从主页面打开一个弹出窗口并关闭它)

案例2:用户从主页面转到详细信息页面并进行某些更新,这些更新要求我们在主页面中反映这些更新。(例如:在主页面上将插槽的颜色从红色更改为绿色)。

目前,当“详细信息”页面关闭时,我们会调用一个为我们提供刷新数据的API(这样我们就不需要维护用户执行的操作列表)了,我们重新加载整个主页面(第1页) 。但是,由于页面需要很长时间才能加载,因此我们会要求仅刷新受影响的插槽/行。

所以,这里的问题是,如果我们必须通过AJAX实现主页面的刷新,我们需要维护一个已经在详细信息页面上完成的活动列表,并通过AJAX提供它,这似乎是一个复杂的活动。 (我们也希望避免调用API。)

是否有任何解决方法可以帮助我们仅刷新主页面上的选定行,以最大限度地缩短页面加载时间。可以吗:重复部分重新渲染?

请告知。

0 个答案:

没有答案