在呈现JSF页面时显示加载/启动画面?

时间:2013-06-05 05:46:31

标签: jquery jsf-2 primefaces

我有一个JSF网站,由于要呈现的数据量,某些数据项需要一段时间才能显示。

我知道如何在按钮点击时使用BlockUI之类的东西,以便在执行动作或AJAX时显示等待消息。

然而,当我直接输入网址并转到页面时,我无法弄清楚如何触发类似的东西。当我使用onload或onready事件时,它在显示页面之前几乎不会闪烁消息。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

因为您没有提供有关

的任何代码
When I use onload or onready events it barely flashes the message right before displaying the page.

我认为你做得对。这个解决方案怎么样?当客户端查询服务器时,服务器会在辅助bean中执行一些处理,如果他已经完成了,那么

了Serverside:

@YourScope (> @RequestScope)
@ManagedBean
public class MyBean {

  private boolean renderDone = false;

  @PostConstruct
  public void renderLotOfData() {
    renderDone = false;
    // do something which takes a long time here
    renderDone = true;
  }

  public boolean isRenderDone() {
    return this.renderDone;
  }

}

客户机侧:

showMySplash(); // initial call

function renderDoneBlockUi() {
  var renderDone = $('#renderDone').val();
  if (renderDone) {
    hideMySplash();
  } else {
    setTimeout(checkRenderDone, 1000);
  }
}

<h:inputHidden value="#{myBean.renderDone}" id="renderDone" />

<p:remoteCommand name="checkRenderDone" update="renderDone" actionListener="#{myBean.renderDone}" autoRun="true" oncomplete="renderDoneBlockUi" />

参考