`
Herbaceous
  • 浏览: 10830 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

session不失效,只要浏览器不关闭

 
阅读更多

简单实现了只要浏览器不关闭,session就不会失效的功能

 

1.javascript定时器定期ajax请求后台

2.避免用户因开多table导致频繁访问后台,利用cookie处理一下

 

function createXHR() {
	var xhr;
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		xhr=new XMLHttpRequest();
	} else {// code for IE6, IE5
		xhr=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xhr;
}
function getCookie(cookieName) {
	if(document.cookie.length > 0) {
		var startIndex = document.cookie.indexOf(cookieName + '=');
		if(startIndex != -1) {		//找到cookie了
			startIndex = startIndex + cookieName.length + 1;
			var endIndex = document.cookie.indexOf(';', startIndex);
			if(endIndex = -1) {		//当前cookie为最后一个,没有';'
				endIndex = document.cookie.length;
			}
			var cookieValue = escape(document.cookie.substring(startIndex, endIndex));
			return cookieValue;
		}
		return null;
	}
	return null;
};
var MINUTES = 10;	//默认10分钟请求一次
function keepSession() {
	if(false) {		//用户没有登录直接返回
		return;
	}
	var LAST_REQUEST_TIME = 'last_equest_time';
	var lastRequestTime = new Date().getTime();
	var cookieValue = getCookie(LAST_REQUEST_TIME);
	if(!cookieValue) {	//第一次登录,还没有cookie
		document.cookie = LAST_REQUEST_TIME + '=' + lastRequestTime;
	} else {
		var intervalTime = lastRequestTime - parseInt(cookieValue);
		if(intervalTime >= 1000*60*MINUTES) {		//只要间隔大于等于规定时间才请求后台
			var xhr = createXHR();
			xhr.open('POST', 'url', true);
			xhr.send(null);
			// 更新cookie
			document.cookie = LAST_REQUEST_TIME + '=' + lastRequestTime;
		}
	}
};
setInterval(keepSession, 1000*60*MINUTES);

 

分享到:
评论

相关推荐

    解决J2EE-session在浏览器关闭后失效问题

    从上述内容可以看出,浏览器关闭后Session失效的原因是因为Session机制采用进程中的cookie来保存sessionid的,当浏览器关闭后进程消失,进程中的cookie消失,那么sessionid也就跟着消失了。因此,如果想使Session在...

    在线人员 ajax聊天室 关闭浏览器和登出控制使session失效

    4. **关闭浏览器处理**:由于浏览器关闭时不会主动发送任何请求,服务器无法直接感知。通常需要在前端设置事件监听器,检测浏览器窗口关闭事件,触发登出操作,发送登出请求到服务器,使得服务器端的session失效。 ...

    ext session失效 页面跳转

    当客户端的浏览器关闭或者Session超时时,Session将被视为失效。 当EXT应用检测到Session失效,它需要与后端服务器进行通信,确认Session状态。这通常是通过Ajax请求完成的。如果后端返回的响应表明Session已过期,...

    浏览器关闭使session失效的问题多种解决方式

    为了解决这一问题,本文将介绍几种处理浏览器关闭导致session失效的方法。 方法一:使用隐藏的iframe定期刷新 这种方式是在每个页面中加入一个隐藏的iframe,利用AJAX技术以异步的方式定期向服务器发送请求进行页面...

    session失效

    ### Session失效详解 在Web应用开发中,会话管理(Session Management)是一项基本且重要的功能。它用于跟踪用户的会话状态,确保用户在与服务器交互过程中保持登录等状态信息的一致性。Session作为会话管理的一种...

    session失效重新登录后,返回之前页面,并保留表单数据

    当Session失效,用户通常会被重定向到登录页面,登录成功后,系统应能恢复之前的浏览状态,如返回原来的页面并保留用户可能已填写的表单数据。这涉及到一系列的技术处理和设计原则,包括Session管理、登录逻辑、页面...

    报表session与应用session常识普及

    尽管如此,实际上很难做到在浏览器关闭时就删除session,因为浏览器关闭并不一定会触发服务器端的关闭session的代码。通常的做法是在客户端页面中使用JavaScript的window.onclose事件来尝试在浏览器关闭时向服务器...

    nginx反向代理导致session失效的问题解决

    总结来说,Nginx反向代理导致Session失效的问题主要是由于路径不匹配导致的Cookie无法正确保存和发送。通过使用`proxy_cookie_path`指令,我们可以调整后端服务器设置的Cookie路径,确保其与Nginx代理的location相...

    IFrame中Session丢失的解决办法

    在Web.Config文件中配置`sessionState`元素,设置`mode`属性为`StateServer`,并指定`stateConnectionString`,这使得Session数据不在本地存储,而是通过TCP/IP连接到一个独立的State Server服务,从而避免了由于...

    关于session丢失问题

    2. **浏览器关闭**:大多数浏览器在关闭时会清除所有的Cookie,包括用于存储Session ID的Cookie。因此,当用户再次打开浏览器时,服务器无法识别之前的Session,造成丢失。对于这种情况,可以考虑采用其他方式存储...

    jsp cookie+session实现简易自动登录

    关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。 如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定...

    JavaWeb Session失效时间设置方法

    而关闭浏览器并不一定会导致Session失效,因为Session的生命周期独立于浏览器。 在Session失效后,有时我们需要执行一些特定的操作,比如: - **控制并发用户数**:当Session失效时,系统中在线用户数会减少,这...

    Session浅析

    通常,同一个IE客户端在不关闭浏览器的情况下,Session ID是不变的。但是,某些情况如页面重载、浏览器设置或安全策略可能导致Session ID更改。理解Session ID的工作原理对于解决如`Session_Start`和`Session_End`...

    session对象及其常用方法

    然后,当客户继续访问服务器上的其他资源时,服务器不再为该客户分配新的 Session 对象,直到客户端浏览器关闭、超时或调用 Session 的 invalidate() 方法使其失效,客户端与服务器的会话结束。 Session 对象主要...

    退出页面自动清除session技巧

    该方法会清除与Session相关的所有数据,并使其失效。这是最常用的彻底清除Session的方式。 #### 实现退出时自动清除Session 为了实现用户退出页面时自动清除Session,可以通过监听浏览器的`onbeforeunload`事件,...

    Session 失效的原因汇总及解决丢失办法

    - 确定Session失效的原因:可以通过查看服务器日志、检查网络请求等方式来判断Session失效的具体原因。 - 跟踪Session状态:在每次刷新页面时跟踪bin目录中某个文件的修改时间,以便于在Session丢失时查找原因。 - ...

    javaWeb_Session(实现用户一段时间自动登录)

    2. **Session失效策略**:除了基于时间的失效外,还可以配置为无操作一定时间后自动失效,或者在服务器内存达到阈值时进行垃圾回收。 3. **分布式环境下的Session共享**:在多台服务器的环境下,需要使用Session...

    JAVA之cookie与session

    Session 通常在浏览器关闭时就会失效。 5. **依赖性**:Session 可能需要借助 Cookie 来保存 Session ID,以便服务器识别用户。 综上所述,Cookie 和 Session 都是 Web 开发中非常重要的技术。根据应用的具体需求,...

    Jsp内置对象session总结

    从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。 Session 对象的 Id 当一个客户首次访问服务器上的一个 JSP 页面时,JSP 引擎产生一个 Session 对象,同时分配一...

    session 超时

    文章讨论了两种不同的web应用中对session失效的不同处理方式,其中重点在exos的背景下阐述了在基于AJAX的web应用中的session失效问题的处理。 知识点三:session时效设置方法 1. 以配置参数的方式设置 在web.xml中...

Global site tag (gtag.js) - Google Analytics