2013-03-11 164 views
1

我看了各種jQuery,ajax,圖像重新加載實現,並嘗試所有。他們都沒有爲我工作。保持會話活着MVC3

我想在下面的代碼片段中實現heartbeat()函數。只要用戶輸入或點擊頁面,此心跳就需要保持會話處於活動狀態。它應該在設定的時間後超時並自動將用戶重定向到登錄頁面。

我遇到的問題是,即使它沒有將用戶重定向到登錄頁面,當用戶單擊表單上的「提交」時,它會將它們重定向到登錄頁面,因爲會話超時。

document.onkeypress = function(e) { 
    heartbeat(); 
    clearTimeout(timer); 
    timer = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 30 * 1000); 
}; 

document.onclick = function(e) { 
    heartbeat(); 
    clearTimeout(timer);  
    timer = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 30 * 1000); 
}; 


function heartbeat() {// need to implement 
} 


function RedirectToWelcomePage() 
{ 
    window.location.replace("/Account/LogOn"); 
} 

回答

5

你的心跳應該能夠保持會話活着的Ajax請求,但我也將確保它不記錄最後的時間戳火一關,每點擊按鍵(最初的頁面加載時間),並且不會觸發另一個Ajax請求直到接近會話或者形成身份驗證超時(如果您使用表單身份驗證)。

+0

謝謝傑夫!我正在實施ajax部分錯誤。 – paaone 2013-03-11 17:35:04