jquery - 在呈现 JSF 页面时显示加载/启动屏幕?

标签 jquery jsf-2 primefaces

我有一个 JSF 站点,由于渲染的数据量较大,某些数据项需要一段时间才能显示。

我知道如何在执行操作或 AJAX 时使用 BlockUI 之类的按钮单击来显示等待消息。

但是,当我直接输入 URL 并转到该页面时,我无法弄清楚如何触发类似的操作。当我使用 onload 或 onready 事件时,它在显示页面之前几乎不会闪烁消息。

有什么想法吗?

最佳答案

因为您没有提供任何有关您的代码

When I use onload or onready events it barely flashes the message right before displaying the page.

我认为您做得正确。这个解决方案怎么样?服务器在支持 bean 中执行一些处理,而客户端查询服务器“是否完成”?

服务器端:

@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" />

引用文献

关于jquery - 在呈现 JSF 页面时显示加载/启动屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932393/

相关文章:

jsf - 使用 View 作用域 bean 进行数据交换

java - 更新非 JSF 表单

jquery - 删除一个框时重新排列框

javascript - 在游戏 map 上动态定位绝对元素

ajax - UI 中的组件 ID :repeat problems

JSF 2 - 无法执行所需的输入+清除(立即)按钮?

jquery - 跨域调用asmx服务

javascript - "e"仅在 Firefox 中未定义

jsf - 通过 request.login() 的编程登录在失败的情况下不会重定向到 <form-error-page>

java - 如何将对象从 primefaces 上的树传递到 View