基本上,我想要實現使用Primefaces線圖,可以改變每隔一秒的網頁。jsf 2:如何使Primefaces線圖每隔1秒更改一次?
在我管理的bean,我得到的,說從我的數據庫100點的數據。我不想一次性填充折線圖,而是想像數據波一樣顯示它們,以便100秒內顯示這100個數據。
我如何能實現呢?
基本上,我想要實現使用Primefaces線圖,可以改變每隔一秒的網頁。jsf 2:如何使Primefaces線圖每隔1秒更改一次?
在我管理的bean,我得到的,說從我的數據庫100點的數據。我不想一次性填充折線圖,而是想像數據波一樣顯示它們,以便100秒內顯示這100個數據。
我如何能實現呢?
你應該從DB獲得100點的數據並將其存儲在一個列表讓的說主列表,並且應該有一個更將被刷新一次,一個第二和主列表的當前元素將被添加到第二個列表清單。 STH。這樣的:
@ManagedBean
@ViewScoped
public class DataBean {
private ArrayList<Data> mainList;//fill this from DB via seperate DAO class
private ArrayList<Data> viewList;
public int counter;
//getter and setters
public void refreshList() {
viewList.add(mainList.get(counter);
counter++;
}
}
,並在視圖層,你應該叫refreshList
方法定期當然這可以通過p:poll
或p:remoteCommand
來完成。 RemoteCommand需要通過JS代碼中調用一次以上,這是這樣的:
jQuery(document).ready(function() {
setInterval("updateChart", 1000);//every 1 sec
});
這FUNC。將調用其命名爲updateChart
的p:remoteCommand
:
<p:remoteCommand name="updateChart" actionListener="#{dataBean.refreshList}"
update="myChart"/>
myChart
是你p:lineChart
組件的客戶端ID,你必須給出確切的ID,就可以通過瀏覽器的開發者設置檢測到它。
並記住,這不是確切的實現可能會有錯誤,p:lineChart
期望模型類,而不是arrayLists,我從來沒有使用圖表組件,但我假設系列類似於列表。希望這可以指導你。
好的答案,他可能會使用輪詢最後一部分http://www.primefaces.org/showcase/ui/poll.jsf – 2013-04-10 08:34:44
@SerkanArıkuşu謝謝。我有一些問題,有可能是P的'錯誤:poll'像[這裏](http://stackoverflow.com/questions/15903816/jsf-primefaces-social-network-notification-system-with-ppoll-推)。這就是爲什麼我提到'p:remoteCommand' – 2013-04-10 10:02:09
@ÖmerFarukAlmalı謝謝你給我兩個選擇。 「poller」適用於我。 – Cacheing 2013-04-11 21:06:23
您可以使用調查:使用http://www.primefaces.org/showcase/ui/poll.jsf – 2013-04-10 07:16:56
Primefaces圖表有'在V3.2 live'屬性。 'live =「true」'會導致圖表每隔一段時間刷新一次。無法想象爲什麼他們刪除它 – kolossus 2013-04-10 12:48:59