2012-03-04 102 views

回答

5

答案取決於你想要完成什麼,以及你願意做什麼。部分刷新失敗的原因是因爲用戶的XSP會話已超時,所以有關特定用戶的頁面視圖的信息已過期,並且不能只是「開始工作」。必須發生的是,您需要設計並實現一種方法來維護和重新加載頁面狀態,然後必須在新會話中恢復,否則會話不會首先過期。第二種方法是最簡單的,第一種方法非常困難。在應用程序設置的XPages選項卡上有一個設置,允許您控制應用程序的超時。將該值設置得更高,以使頁面保持更長時間的活動狀態。由於會話在內存中的時間越長,所需的內存就越多,從而導致可伸縮性降低,這裏有一個折衷。或者,您可以在onError中構建一些邏輯來檢測失敗的局部刷新,然後執行全面刷新以重新建立會話,但任何會話數據都將丟失。

+0

嗨傑里米 - 你有第一個選擇的例子嗎?我希望避免第二種選擇。 – pipalia 2012-03-04 23:15:10

+0

Jeremy在局部刷新失敗時觸發了什麼事件,或者我應該像Frantisek提到的那樣,使用keepSessionAlive ExtLib選項? – pipalia 2012-03-11 22:11:02

+1

我不認爲它會拋出一個錯誤...下注會在部分刷新的錯誤,但我認爲當會話過期,沒有發生,它只是返回一個空的結果 – 2012-03-12 16:51:05

2

在ExtLib中尋找xe:keepSessionAlive控件。它會定期ping服務器,所以會保持你的會話活着。

如果有太多用戶打開瀏覽器,請注意性能問題。

+0

感謝Frantisek的評論,我在Matt Whites xpages101會議上看到了這一點,我將不得不再次看視頻,是否有可能告訴這個事情只能ping 1天最多? – pipalia 2012-03-04 23:13:19

+1

xe:keepSessionAlice與應用程序中的sessionTimeout值一起工作,以確定最佳Ping間隔。 – 2012-03-04 23:36:06

+0

謝謝德克蘭 - 將進一步探索這一點。 – pipalia 2012-03-04 23:37:32