JSF不会同时加载所有内容

时间:2013-08-17 20:13:25

标签: ajax performance jsf graphicimage

在我的JSF应用程序中,如果我刷新页面,所有内容都会被渲染,除了主要的图形图像和jsf <f:ajax />不起作用。如果我等待5秒,ajax调用再次工作,并且图形图像正在加载。

另一个例子是我上传图片的时候。图像获取,上传并刷新网站。在此之后显示图像,但几秒后,ajax调用将无法工作。

该应用程序在带有JSF 2.1的JBoss 7.1上运行

这是硬件速度慢还是别的问题。我会对任何提示感到满意,因为我真的不知道在哪里寻找解决方案。

示例:

<p:selectOneRadio id="options" value="#{gameWriter.uploadCover}">
     <f:selectItem itemLabel="ja" itemValue="true"/>
     <f:selectItem itemLabel="nein" itemValue="false"/>
     <f:ajax/>
</p:selectOneRadio>

1 个答案:

答案 0 :(得分:0)

定义f:ajax时,尝试提供要执行和更新的UI组件。同时举办活动。如果你想处理整个表单并更新整个页面,你可以在f:ajax中使用@form和@all。

@form和@all与f:ajax的示例如下。

<h:form>
    <p:selectOneMenu  id="cmb" value="#{investigationItemController.current}" >
        <f:selectItem itemLabel="Please select an item" />
        <f:selectItems value="#{investigationItemController.items}" var="ii" itemLabel="#{ii.name}" itemValue="#{ii}" />
        <f:ajax event="change" execute="@form" render="@all"/>
    </p:selectOneMenu>
    <h:outputLabel id="lbl" value="#{investigationItemController.current}" />
</h:form>

使用primefaces ajax命令的示例如下。

<h:form>
    <p:selectOneMenu  id="cmb" value="#{investigationItemController.current}" >
        <f:selectItem itemLabel="Please select an item" />
        <f:selectItems value="#{investigationItemController.items}" var="ii" itemLabel="#{ii.name}" itemValue="#{ii}" />
        <p:ajax event="change" process="cmb" update="lbl"/>
    </p:selectOneMenu>
    <h:outputLabel id="lbl" value="#{investigationItemController.current}" />
</h:form>

如果我们想要为多个事件执行逻辑,我们可以添加多个或一个UI组件。

从'on'开始,从UI组件的属性列表中删除'on'后,可以获取标准JSF UI组件的事件。例如,如果JSF UI支持onChange作为属性,则可以使用event =“change”。 对于primefaces UI组件,Primefaces文档下列出了可能的事件。 正确选择事件以获得成功的ajax响应至关重要。