2013-05-10 67 views
1

嗨,我真的是Jsf和Primefaces世界的新手,我有一個關於primefaces輪詢組件的簡單查詢,如下所示。Primefaces輪詢

我有一個登錄頁面,一旦用戶通過驗證我重定向他welcome.xhtml在那裏我有輪詢數據庫服務,每2分鐘頁,我已經使用primefaces輪詢組件此 <p:poll interval="120" listener="#{databaseService.getJob}"/>它後工作正常,並調查每2分鐘,但我想要的是,一旦用戶通過身份驗證並登陸歡迎頁面,投票服務應立即啓動,而不是等待2分鐘的時間間隔。要做到這一點,我試圖用autoStart="true"

<p:poll interval="120" listener="#{databaseService.getJob}" autoStart="true" /> 

,但它沒有工作。

所以,讓我知道如何實現這一點。

您的幫助表示讚賞。

回答

0

如果你希望你的方法被立即調用使用RemoteCommand用AUTORUN =「真」,不使用你的輪詢組件的自動啓動功能,當的onComplete RemoteCommand被觸發手動啓動調查像這樣(未經):

<p:poll id="databaseServicePoll" interval="120" listener="#{databaseService.getJob}" autoStart="false" /> 

<p:remoteCommand name="firstDatabaseServiceCall" actionListener="#{databaseService.getJob}" 
autoRun="true" oncomplete="databaseServicePoll.start()" /> 
+0

但是爲什麼?如果'autoRun'是一個默認選項,TS只是使用它錯誤,他應該學會一個合適的方法來做到這一點,而不是一些奇怪的解決方法 – SMSk 2015-09-16 10:35:18

+0

輪詢組件的默認行爲是在間隔設置後進行第一次輪詢,autoRun只是指定if這應該自動或手動啓動。這很方便,因爲組件假定您已經加載了頁面加載的初始數據,所以下一輪應該在一段時間後開始。我建議使用remoteCommand進行第一次呼叫,然後開始輪詢,以便下一次呼叫被安排。它不是一個奇怪的解決方法,它是解決當前問題的一種方法。 – 2015-09-17 12:27:18