0
我有一個使用GWT的網站,該網站使用Spring進行保護,超時時間爲...假設一個小時。作爲該過程的一部分,我試圖在會話過期前5分鐘實施客戶端會話超時警告。如何在任何異步RPC調用時調用GWT方法
我已經爲它寫出了使用cookies的Javascript。定時器的工作原理是初始化定時器,並且有一個方法可以通過本地方法重置可以在GWT中使用的定時器。
function resetSessionTimeout() { //update the cookie for the expected timeout
var date = new Date();
var timeoutTime = 55 * 60 * 1000;
date.setTime(date.getTime() + timeoutTime);
createCookie('timeout', date.getTime(), 1);
}
每當一個RPC是對服務器進行,基於服務器的會話超時被刷新,所以最初的計時器不再使用任何類型的異步調用後準確。上面的函數會用正確的超時時間更新客戶端。
絕對可行的選項是調用一個本機無效,它調用$wnd.resetSessionTimeout()
從每一種方法我有異步調用。然而,這是很多方法,並且可擴展性差,執行性差。
有沒有辦法讓我設置客戶端部分來觀察每一個RPC已經被創建和接收,然後把原生的void放在MVP級別而不是每個方法,即是否存在RPC Observers或聽衆?
哇,我從來沒有想過這樣做。那麼,重新連線一切,以覆蓋執行,而不是onSuccess將需要一段時間,但這顯着改善處理。謝謝!我認爲另一種方法是在構造函數中調用更新,然後讓onFailure重置計時器。 – Compass 2014-10-10 19:57:41