2

ページがロードされた後、たとえば10秒ごとにJSFでajaxイベントを発生させることは可能ですか?

つまり:

<f:ajax listener="#{bean.mymethod()}" />

ページが読み込まれてから 10 秒ごとにこのメソッドを呼び出したいと思います。JavaScript の更新でページ全体をリロードしたくありません。

4

2 に答える 2

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>

豆:

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++;  
    }  
}  

したがって、特定のケースでは、次のようなものが必要です。

<p:poll interval="10" listener="#{bean.mymethod}" />  
于 2012-12-06T11:41:46.443 に答える
0

使用する

<a4j:poll action="#{bean.mymethod()}" interval="10000"/>
于 2012-12-06T11:17:24.743 に答える