Richfaces TabPanel - 当用户双击选项卡时,避免多次提交

时间:2010-11-17 08:36:31

标签: jsf richfaces

让我们考虑一下代码示例:

<rich:tabPanel switchType="ajax">
    <rich:tab label="tab1">
        ...
    </rich:tab>
    <rich:tab label="tab2">
        ...
    </rich:tab>
</rich:tabPanel>

这将创建一个包含2个选项卡的简单选项卡面板,使用Ajax刷新<rich:tabPanel>的内容。

因此,如果我在tab1并点击tab2,则会向服务器发送Ajax请求以获取tab2内容。我担心的是,如果用户双击tab2,则会发送两个 Ajax请求(实际上会发送与用户快速点击的次数一样多的请求这个标签标题)。

所以我的问题是如何避免发送多个请求,即使用户在标题页上多次点击?

我尝试在ondblclick="return false;"<rich:tab>上设置<rich:tabPanel>,但这并没有解决我的问题。

1 个答案:

答案 0 :(得分:0)

您可以使用在ajax请求期间向用户显示的弹出窗口。因此用户无法单击按钮,选项卡等。例如,

<a4j:status id="commonAjaxStatus" onstart="javascript:Richfaces.showModalPanel('ajaxLoadingPanel')" 
    onstop="javascript:Richfaces.hideModalPanel('ajaxLoadingPanel')">
    <f:facet name="start">
        <r:modalPanel id="ajaxLoadingPanel" moveable="false" resizeable="false" width="239" height="40" zindex="1000">
            <h:graphicImage  value="../img/ajax-loader.gif" />
        </r:modalPanel>
    </f:facet>
    <f:facet name="stop">
    </f:facet>
</a4j:status>

如果您将此代码插入您的页面,则在ajax请求中将打开一个弹出窗口,当请求完成时,弹出窗口将消失。