2011-04-29 89 views
0

我正在使用Richfaces 4和Mojarra 2.0.4。所以我會很高興,如果答案是特定於Richfaces 4框架:)JSF頁面完成渲染後加載數據

我知道JSF組件在服務器端處理。我的一些頁面實際上是以數據爲中心的。因此,當我加載該頁面(例如:在switchTax ajax的richTab中)時,我的bean需要很長時間才能執行標記爲@PostConstruct的方法來執行和獲取數據。因此用戶點擊標籤頁頭和實際頁面渲染之間的時間間隔非常大,這是一種非常糟糕的用戶體驗。我已經爲頁面中的dataTables實現了延遲加載,但仍然不會優化我的頁面加載時間,因爲@PostConstruct仍然存在。

是否有反正我可以先加載頁面,然後用ajax獲取數據並更新頁面?這種加載時間是讚賞user.Any幫助:)

PS真的很煩:我想用用a4j:function宣佈rich:taboncompleteonbeforedomupdate客戶端事件和呼叫AJAX功能。但似乎這些事件在之前被觸發頁面實際切換。

回答

1

使用與<a4j:jsFunction>

沿着如果你還是覺得你的網頁是不是叫然後使用setTimeout('a4jfunctionName',10)的方法onload javascript函數先完成渲染之前完全渲染HTML <body>標籤的onload事件。

+0

感謝您的回答!然而,如果我們要使用onload事件,我將不得不根據哪個標籤被加載來檢查哪個bean調用哪個方法。右?但你的回答只是給了我一個主意!我可以在rich:tab上使用oncomplete和setTimeout!將嘗試並回來。 :) – Nikhil 2011-04-29 07:41:41

+0

@Nikhil - 是的,這是真的,否則你將不得不同時加載所有的數據,祝你好運:) – niksvp 2011-04-29 07:47:25

+0

嗯,剛剛發現第一個選項卡的oncomplete方法沒有得到執行!如果我切換到其他選項卡並返回到第一個,則只有第一個選項卡的未完成執行。所以我不能在第一個標籤中使用這個策略。 :| – Nikhil 2011-04-29 10:18:50