【发布时间】:2013-10-29 05:23:41
【问题描述】:
您好,我正在使用 Primefaces 3.5 开发 JSF。以下是使用 menuitems 从一个页面切换到另一个页面的代码 sn-p,我正在尝试使用 ajax 调用来避免在从一个页面移动到另一个页面时页面闪烁。
以下是我的 xhtml 文件中的代码:
<p:menubar styleClass="brzero borderb">
<p:menuitem value="Student" action="#{studentMB.show('menu')}" ajax="true" />
<p:menuitem value="Users" action="#{usersMB.show('menu')}" ajax="true" />
<p:menuitem value="Departments" action="#{departmentMB.show('menu')}" ajax="true" />
</p:menubar>
使用的托管 bean 显示操作函数如下
public String show(String mode) {
if (mode.equals("menu")){
selectStudent=null;
init();
return "studentList.jsf";
}
else if (mode.equals("list")){
return "welcome.jsf";
}
else {
clone(selectStudent, oldStudent);
return "studentEdit.jsf";
}
}
代码在 localhost tomcat 服务器上运行良好,但是当部署在通过互联网访问的远程服务器上时,这些调用需要花费大量时间,大约 15-20 秒。我尝试在两三个不同的网络服务器上检查这是否可能是网络/DNS 问题,但问题仍然存在于所有服务器上。
任何想法/帮助可能是什么原因,或者我做错了什么,我知道必须使用 ajax 来处理部分请求或更新部分,但是页面切换的解决方案是什么。 .
【问题讨论】:
-
页面加载时间取决于您尝试加载的 jsf 文件中的代码。它们是否包含任何不存在的 js/css 引用。
-
不,我一直在使用一个 css,没有外部 js,正如我所说,这些在 localhost 服务器上运行良好,但是当通过远程服务器访问时,它们会导致问题.. 和我的 jsf pages 包含简单的 primefaces 数据表、命令按钮和一些文本字段.....
-
你能检查数据库连接/数据检索时间吗?
-
我做到了,我想说明一件事,当我在 xhtml 文件中将 ajax="true" 更改为 ajax="false" 并返回 "studentList.jsf";返回“studentList.jsf?faces-redirect=true”;在 managedbean 中,它们不需要任何时间,但屏幕会在页面导航之间滑动
-
你应该使用 JSF Navigation。
标签: ajax jsf time primefaces