现在web开发中,ajax应用的比较多。关于此方面的框架也不少。在应用中都会遇到session过期
的问题,如处理不当会影响用户体验,也有可能产生莫名的问题。
结合自己的思考和网上相关内容的参考,给出如下解决方案。每个方案都有不同的优缺点,欢迎
大家指正。
方案1:检查AJAX返回的返回的内容是否有<html>标签
在web系统中,当session过期时,当用户有操作的时候,此时系统一般会返回登陆界面。
让用户重新输入用户名和密码。当session过期的时候,AJAX请求返回的内容应该是登陆界面的页面
内容(即登陆界面的页面的html代码)。通过判断返回内容是否用<html>来判断session是否过期。
var result=request.responseText;/* ajax返回的内容*/
if(result.indexOf('<HTML>')>-1){/*返回内容中有html标签*/}
或者
var r=/<html>/ig;
if(r.test(result)){/*返回内容中有html标签*/}
通过上面的方法可以判断session是否过期,然后根据具体的业务进行异常处理。
方案2:返回的结果中有session是否过期的标志。也有人称为true/false模式
此解决方案一般结合json使用。
如返回的结果是:
var res={
"result":true,/*session没有过期,false(session过期)*/
"data" :""/*其它数据*/
}
if(res["result"])
{
/*session没有过期*/
}else{
/*session过期*/
}
方案3:利用时间戳
在页面上搞个全局变量
var startDate; /*ajax最近一次访问服务器的时间,Date类型*/
if(new Date().getTime()-startDate.getTime()<30*60*1000)
{
/*假设session过期的时间30分钟*/
/*session没有过期*/
}else{
/*session过期*/
}
哈哈!Do not trust the client
方案4:延长session过期时间
此方案有性能问题
4.1:延长session过期时间
4.2:client轮循server。(AJAX轮循server或client,server保持长连接)
分享到:
相关推荐
本文将针对AJAX在Session过期问题上提供几个解决方案,并对每个方案的优缺点进行讨论。 方案1:通过检查AJAX返回内容是否包含标签 当Session过期时,服务器通常会返回登录页面的HTML代码。因此,我们可以通过AJAX...
本文将深入探讨phpcms中的session过期问题,并提供解决方案。 首先,我们需要理解session的工作原理。Session是通过在服务器端存储用户状态信息,每次用户请求时,通过session ID来识别用户。当用户长时间无操作...
通过这样的方式,我们能够有效地处理Ajax请求时的用户session失效问题,确保用户在session过期后能够被正确地引导至登录页面。同时,这也是一种常见的跨域问题解决方案,因为跨域请求同样需要在服务器端返回正确的...
最后一个解决方法是不做任何特别的操作,等待session自动过期。这种方法的优点是简单,不需要开发者做任何额外的工作。然而,缺点同样明显,用户可以在等待session失效的这段时间内重新登录,这就使得前一次的会话...
本文将分享两个我在实际开发中遇到的问题及其解决方案。 问题1:多请求处理与代码组织 传统的做法是为每个不同的请求创建一个单独的Handler,但这可能导致大量重复的代码和难以维护的结构。一种改进的方式是使用...
- `web_online.sln`:这是一个解决方案文件,用于管理整个项目,包括引用的库、项目设置、版本控制信息等。在进行在线人数统计时,此文件维护了所有相关组件的组织和构建顺序。 实现在线人数统计通常涉及以下几个...
2. **性能优化**:大量用户同时在线时,频繁的操作Session和Application可能会影响服务器性能,可以考虑使用缓存技术或分布式存储解决方案。 3. **匿名用户与注册用户**:区分匿名访问和注册用户,提供更准确的在线...
- 系统安全性和性能优化的策略,如防止SQL注入、设置session过期时间、优化数据库查询等。 - 教学管理系统的具体功能模块设计,如课程管理、教师管理、学生管理、成绩管理等,以及这些功能如何通过ASP和BS架构实现。...
在IT行业中,多域名登录是一种常见的需求,尤其在拥有多个子网站或子应用的企业环境中。本文将详细讨论“PHP多域名登录”的实现方法,并提供一些关键的实施步骤和注意事项。 首先,多域名登录的核心思想是共享用户...
对于ASP.NET MVC项目,可以使用Google的ReCaptcha服务,它提供了一种强大的反机器人解决方案。需要在Google ReCaptcha网站上注册获取API密钥,然后在视图中添加相应的HTML标记,同时在控制器中处理验证响应。 三、...
在线人数统计系统是Web开发中的一个常见需求,用于实时跟踪并显示网站当前的活跃用户数量。这个名为"在线人数统计 V1.0(Asp...开发者通过理解和应用这些知识点,可以构建出高效、稳定且安全的在线人数统计解决方案。
对于那些不熟悉Ajax(异步JavaScript和XML)的开发者来说,这是一个相对简单的解决方案。 首先,我们来了解一下验证码的基本原理。验证码通常由一串随机字符或数字组成,这些字符被扭曲、旋转或以其他方式变形,以...
主要分为以下几个层面: 1. **浏览器缓存(Web前端优化)** - **减少HTTP请求**:通过合并CSS和JavaScript文件,减少HTTP请求次数,从而加快页面加载速度。 - **减少DNS查找**:DNS查找会消耗时间,通过预加载DNS...
使用Grid+Report报表控件的方法是一种推荐的解决方案,它结合了数据网格与报表的功能,能够更灵活地展示和打印数据。 #### 33. UniGUI的布局面板控件TUniRegionPanel `TUniRegionPanel`是一种用于布局控制的容器...
压缩包中含有多个文档,从了解httpclient到应用。 httpClient 1httpClint 1.1简介 HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持...
- **项目经验**:准备好介绍自己参与过的项目,特别是遇到的技术挑战和解决方案。 - **沟通技巧**:清晰地表达自己的想法,积极倾听面试官的问题,并给出有针对性的回答。 - **行为面试**:准备STAR法则(Situation...
15.5 常见问题与解决方案 259 15.6 小结 261 第16章 数据库中的程序逻辑 262 16.1 数据库程序逻辑与PHP程序逻辑的分体 16.1 设计原则 262 16.2 数据库中的程序逻辑与数据的关系 262 16.3 存储过程的设计 263 16.3.1 ...
对于敏感数据,应避免在客户端存储,而优先考虑服务器端的解决方案,如ASP.NET中的ViewState、Session或Application对象。 在.NET框架的不同版本中,客户端状态管理的支持有所不同。例如,.NET 1.1和2.0开始支持...
具体实现分为以下几个步骤: 1. 页面结构定义:首先在HTML页面中定义一个用于显示在线人数的容器,通常是一个带有`span`标签的`div`元素。例如: ```html 当前在线:<span id="number"></span> ``` 2. jQuery动画...