1

I have a p:tabMenu which is used to display tabs.

<p:tabMenu id="tabs" activeIndex="0" >  
    <p:menuitem value="tab1" url="/tab1.jsf" />
    <p:menuitem value="tab2" url="/tab2.jsf" />
</p:tabMenu>  

In order to make the loading of the tabs more smooth (I don't want to see the tab blinking) can I somehow use Ajax?

4

2 回答 2

3

缓存 ( cache=true) 选项卡内容将使加载更加顺畅。默认情况下启用缓存。此外,如果您想在每个选项卡更改时进行 ajax 调用,请使用以下tabChange事件:

<p:tabMenu id="tabs" activeIndex="0" dynamic="true">

    <p:ajax event="tabChange" listener="#{tabBean.onTabChange}"/>

    <p:menuitem value="tab1" url="/tab1.jsf" />
    <p:menuitem value="tab2" url="/tab2.jsf" />
</p:tabMenu>

有关详细示例,请参阅TabView - 更改侦听器演示。

于 2012-10-15T06:28:11.730 回答
2

设置dynamic="true"在您的<p:tabMenu/>, 自动触发一个 ajax 请求。在 primefaces 演示网站上非常明显。另请参阅primefaces 演示

编辑:更仔细地考虑你的问题,如果你正在寻找的视觉效果是平滑effect的,你应该将你的 tab参数设置为任何 primefaces effects。我个人最喜欢的是effect="slide"

于 2012-10-15T01:48:51.653 回答