我有一个带有请求范围bean的jsf页面。在请求范围bean的构造函数中触发了慢速数据库查询。然后,查询结果显示在网页上的jsf数据表中。
如何在数据库查询完成之前显示等待消息?
我尝试为onLoad标签调用javascript函数。只有在执行慢速数据库查询后才会调用该方法。
答案 0 :(得分:2)
慢速数据库查询发生在服务器上,早在构建的页面出现在浏览器之前。执行所需操作的唯一方法是安排浏览器在之前显示“等待”消息,以启动导致JSF页面运行的HTTP请求。
然而,花时间在这方面的最好方法可能是修复查询。
答案 1 :(得分:1)
您必须首先加载“等待页面”,然后在该页面的onLoad
中加载执行数据库查询的那个。如果查询速度很快,用户就不会看到太多闪烁,因为现代浏览器(= IE6除外)。
或者,您可以将结果加载到隐藏的iframe
中,并在页面中显示“请稍候”。加载iframe
中的代码后,您可以通过parent
访问父文档使其可见:
parent.getElementById('frame').styles.display = '';
parent.getElementById('wait').styles.display = 'none';
(把它放在onLoad
内的JSP的iframe
中。