2013-10-21 87 views
2

我有一個ajax請求每隔n秒鐘觸發一次......因此,ASP.net會話超時從未發生過。ASP.NET阻止AJAX請求保持會話活動狀態

我可以以某種方式操縱ajax請求,以便asp.net會話不會因爲這個ajax請求在後臺觸發而保持活動狀態嗎?

基本上,讓會話死亡!

歡呼任何輸入或點在正確的方向!

安德魯

+0

如果您希望會話在某個時間點到期,那麼您的設計看起來有缺陷。你每n秒輪詢一次服務器? – nickytonline

+0

我不希望構成用戶活動的非自願行爲。它正在輪詢發送給用戶的未讀通知的數量。 –

+1

當你說「會話」時,你的意思是「會話狀態」,還是可以認證會話?讓會話狀態滑動是合理的,但是將身份驗證設置爲非滑動,可能需要根據您自己的「用戶活動」定義進行手動更新機制? – Snixtor

回答

1

使用setTimeout函數,如果你在同一個頁面的其他Ajax請求,並希望保持會話使用這些請求做

var timeoutID; 

    function delayedAlert() { 
     timeoutID =window.setTimeout(slowAlert, 25000);//Session Timeout to expire in milliseconds 
    } 

    function slowAlert() { 
     $.ajax({ 
     });// call Ajax function to clear all sessions. 
    } 

。在此之前請先清除超時功能。

function clearAlert() { 
    window.clearTimeout(timeoutID); 
} 

您可以在window.load函數本身中調用delayedAlert函數。 (或$ .ready())