如何在没有JQuery的情况下,通过对服务器的基本ajax调用,根据浏览器上的用户活动保持服务器会话活动
How to keep server session active based on user activity on the browser with basic ajax call to server without JQuery
在我的站点中,服务器会话超时为30分钟。
<system.web>
<sessionState timeout="30" />
</system.web>
但是,如果用户通过键入长注释或选择几个复选框在浏览器上处于活动状态,我需要在不注销的情况下保持用户的活动状态。当用户在打字10分钟后变得不活跃、离开20分钟后再次打字时,用户不应该被注销,因为空闲时间只是20而不是30分钟,但如果用户离开了整整30分钟,则用户应该被注销。我找到了下面的代码来检查用户活动。如果我在web.config中没有上面提到的行,代码就会工作,我认为这是错误的。如果用户在浏览器上处于活动状态,我希望保持这一点,并防止超时发生。此外,我不想简单地将用户重定向到logout.aspx。我想结束服务器会话。有没有一个解决方案,而不必创建伪aspx页面,或者必须保留一个空页面才能避免404?有什么解决方案可以在不使用Jquery的情况下对服务器进行基本的Ajax调用?谢谢
var IDLE_TIMEOUT = 60; //seconds
var _idleSecondsCounter = 0;
document.onclick = function() {
_idleSecondsCounter = 0;
};
document.onmousemove = function() {
_idleSecondsCounter = 0;
};
document.onkeypress = function() {
_idleSecondsCounter = 0;
};
window.setInterval(CheckIdleTime, 1000);
function CheckIdleTime() {
_idleSecondsCounter++;
if (_idleSecondsCounter >= IDLE_TIMEOUT) {
alert("Time expired!");
document.location.href = "logout.aspx";
}
}
我认为您可以使用http选项方法。
function keepOnline(url) {
var xhr ;
if (window.XMLHttpRequest) {
xhr=new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("OPTION",url,true);
xmlhttp.send(null);
}
相关文章:
- 使用JSP从服务器检索和显示图像
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 客户端服务器REST API captcha实现
- 正在将base64 jpeg从input-type=file上传到服务器
- Webpack开发服务器和React服务器端渲染
- 提示使用服务器端事件处理程序激活JavaScript
- 向服务器发送请求以获取活动引导导航药丸
- 无法仅在活动服务器上读取未定义错误的属性“top”
- 如何在没有JQuery的情况下,通过对服务器的基本ajax调用,根据浏览器上的用户活动保持服务器会话活动
- 为什么我能够在活动站点上“选中”“禁用”复选框,并且数据已成功上传到服务器
- 移动请求检测并重定向到 ASP 中的移动页面(活动服务器页面)
- 标头位置在活动服务器上不起作用
- 未在活动服务器中传递会话变量
- 如何创建一个网站/网页,执行后端服务器活动
- 将活动元素从所有客户端发送到服务器
- Node.js和Socket.IO从本地开发服务器移动到活动服务器,而不是连接
- 应用程序部署到活动服务器时出现内部服务器错误
- twitter bootstrap - Javascript在测试服务器上工作,但在活动服务器上给出错误
- socket.io非活动客户端连接的服务器端超时