2012-08-03 26 views

回答

1

正如KayKay提到你可以使用JavaScript來定期詢問服務器是否有任何更新發送實施某種形式的投票方法的。除非你使用ajax,否則只能完成整個頁面刷新。

JSF一樣好,因爲它是坐落在基本無狀態的Web技術之上。除非您使用Ajax或某些自定義代碼,否則服務器將只響應來自客戶端的請求。像ICEfaces的一些圖書館已經將「推」組件,讓你在找什麼(從我的理解,這是icefaxes的基本組成部分)。也就是說,將服務器端更改推送到客戶端。

你必須建立一個監聽器上您的最終以便當值改變發生在服務器上(如在支撐bean是在服務器上),你的bean將得到通知。當變化發生你可以問說,「ICEfaces的推」(或類似primefaces,你表示你不希望使用另一個庫)的通知發送到客戶端。客戶端代碼(通常是ajax/javascript)將處理通知,然後根據正常請求響應發送整個對象的請求。這是通知告訴客戶它有興趣更改的內容,因此客戶可以要求更新。除通知外,仍然要求/迴應。

我提到ICEfaces的推動,因爲它似乎是這樣做的青睞庫現在。但其他人也有這個。我不相信標準的JSF 2.0 AJAX庫有這個。

這裏是看一對夫婦的資源在:

(視頻是一個良好的開端讓正在發生的事情的想法,然後使用該網站的其餘部分) http://www.icesoft.org/demos/icepush-demos.jsf

舊但我覺得還是你想做的事,使用庫存的變化作爲一個例子什麼有關IBM教程:

http://www.ibm.com/developerworks/web/library/wa-aj-dynamic/index.html

和相關的另一組問題:

Is there a better Ajax Push for JSF 2.0 than Icefaces

不幸的是,它看起來就像你不能做到這一點只用JSF,你將不得不使用這些庫中的一個或更難,推出自己的推送機制。

0

我不知道一個JSF功能來做到這一點。我只想做一些JavaScript輪詢,例如使用jquery load method刷新其中顯示的值頁面的部分。

這將有助於瞭解你想要做什麼:刷新整個頁面時有變化,更新薩姆說從一開始就顯示出來,或添加新值頁值。

+0

你能指出這方面的一些很好的例子(沒有primefaces) – stackoverflow 2012-08-03 18:14:57

+0

對不起,我沒有任何。但我編輯了我的答案,試圖澄清我的意思。 – kgautron 2012-08-03 18:29:55

+1

@stackoverflow如果你不能/不想添加外部庫像PrimeFaces或具有輪詢控制器RichFaces的,那麼你應該使用jQuery的方法服務器時間輪詢時間。 – 2012-08-03 19:34:23

相關問題