Primefaces Ajax调用需要花费很多时间

时间:2013-10-29 05:23:42

标签: ajax jsf time primefaces

您好我正在使用Primefaces 3.5开发JSF。以下是使用menuitems从一个页面切换到另一个页面的代码片段,我正在尝试使用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 show动作函数为

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服务器上运行正常,但是当部署在通过Internet访问的远程服务器上时,这些调用大约需要15-20秒的时间。我尝试了两个不同的网络服务器来检查这是否是网络/ DNS问题,但问题仍然存在于所有服务器上。

任何想法/帮助可能是什么原因,或者是我做错了什么,我知道ajax必须用于提供部分请求或更新部分,但是什么可以是页面切换的解决方案。 。

1 个答案:

答案 0 :(得分:0)

这应该由JSF Navigation完成。见下面的解决方案:

在f aces-config.xml

中添加此内容
<navigation-rule>
        <from-view-id>/index.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>menu</from-outcome>
            <to-view-id>/studentlist.xhtml</to-view-id>
        </navigation-case>
</navigation-rule>

它说,只要结果是“菜单”,只需重定向到studentlist.xhtml.

现在,将您的main.xhtml更新为

<p:menubar styleClass="brzero borderb">
      <p:menuitem value="Student" action="menu"/>
</p:menubar>

如果有人选择了学生菜单,它会自动重定向到studentlist.xhtml.

试试吧!