加载页面后每10秒触发一次ajax事件

Cic*_*chy 2 ajax jsf

是否可以在加载页面后使用JSF触发ajax事件,例如每隔10秒?

我的意思是:

<f:ajax listener="#{bean.mymethod()}" />
Run Code Online (Sandbox Code Playgroud)

我想在加载页面后每隔10秒调用一次这个方法.我不想通过JavaScript刷新重新加载整个页面.

Bal*_*usC 7

此过程称为"轮询".

标准JSF不提供此功能<f:ajax>.您需要寻找第三方JSF组件库.根据您的问题历史记录,您使用的是PrimeFaces,或者至少已经熟悉它.在这种情况下,您可以将其<p:poll>组件用于作业.另请参见PrimeFaces <p:poll>展示页面,其代码摘录如下:

视图:

<h:form id="form">  
    <h:outputText id="txt_count" value="#{counterBean.count}" />  

    <p:poll interval="3"   
            listener="#{counterBean.increment}" update="txt_count" />  
</h:form>
Run Code Online (Sandbox Code Playgroud)

豆:

public class CounterBean implements Serializable{  

    private int count;  

    public int getCount() {  
        return count;  
    }  

    public void setCount(int count) {  
        this.count = count;  
    }  

    public void increment() {  
        count++;  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

在您的特定情况下,您需要以下内容:

<p:poll interval="10" listener="#{bean.mymethod}" />  
Run Code Online (Sandbox Code Playgroud)