2013-10-21 90 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())