`
jimmey
  • 浏览: 3264 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

解决Ajax应用中的session过期问题

阅读更多

转载:http://www.8211.cn/repository/list_2305.html

现在web开发中,ajax应用的比较多。关于此方面的框架也不少。在应用中都会遇到session过期的问题,如处理不当会影响用户体验,也有可能产生莫名的问题。

结合自己的思考和网上相关内容的参考,给出如下解决方案。每个方案都有不同的优缺点,欢迎大家指正。

方案1:检查AJAX返回的返回的内容是否有< html>标签

在web系统中,当session过期时,当用户有操作的时候,此时系统一般会返回登陆界面。

让用户重新输入用户名和密码。当session过期的时候,AJAX请求返回的内容应该是登陆界面的页面内容(即登陆界面的页面的html代码)。通过判断返回内容是否用< html>来判断session是否过期。

  1. var result=request.responseText;/* ajax返回的内容*/ 
  2.  
  3. if(result.indexOf('< HTML>')>-1){/*返回内容中有html标签*/}  

或者

  1. var r=/< html>/ig;  
  2. if(r.test(result)){/*返回内容中有html标签*/

通过上面的方法可以判断session是否过期,然后根据具体的业务进行异常处理。

方案2:返回的结果中有session是否过期的标志。也有人称为true/false模式。此解决方案一般结合json使用。

如返回的结果是:

  1. var res={  
  2. "result":true,/*session没有过期,false(session过期)*/ 
  3. "data"  :""/*其它数据*/ 
  4. }  
  5. if(res["result"])  
  6. {  
  7.   /*session没有过期*/   
  8.  }else{  
  9.  /*session过期*/ 

方案3:利用时间戳

在页面上搞个全局变量

  1. var startDate; /*ajax最近一次访问服务器的时间,Date类型*/ 
  2. if(new Date().getTime()-startDate.getTime()< 30*60*1000)  
  3. {  
  4. /*假设session过期的时间30分钟*/ 
  5. /*session没有过期*/ 
  6. }else{  
  7. /*session过期*/ 

哈哈!Do not trust the client

方案4:延长session过期时间

此方案有性能问题

4.1:延长session过期时间

4.2:client轮循server。(AJAX轮循server或client,server保持长连接)

 

AJAX相关书籍资料

 

征服Ajax Web 2.0开发技术详解

 

《ajax框架:dwr与EXT》实战

Ajax宝典

 

Ajax.基础教程

 

AJAX实战

分享到:
评论

相关推荐

    完美解决ajax访问遇到Session失效的问题

    现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不

    session过期问题

    **Session过期问题的常见场景及解决方案** 1. **用户长时间未操作**:设置合理的Session超时时间,同时考虑采用心跳检测来保持用户在线状态。 2. **用户浏览器关闭**:浏览器关闭后Session丢失,再次打开时应判断...

    判断session过期的方式

    本篇文章将详细介绍三种判断Session过期的方法。 ### 1. 检查Session有效期 这是最直接的方式,服务器在创建Session时会设置一个过期时间,例如30分钟。每当用户发送请求时,服务器都会检查当前Session是否超过...

    ajax session过期问题的几个解决方案

    上述提供的解决方案各有优劣,开发者需要根据实际应用场景和技术栈,选择最适合的方法来处理AJAX中的Session过期问题。同时,要保持对各种方案的深入研究和思考,以便在遇到类似问题时能够快速有效地给出解决方案。

    phpcms web发布session过期问题解决

    解决phpCMS中的Session过期问题,可以采取以下步骤: 1. **检查PHP配置**:首先,查看php.ini文件中的`session.gc_maxlifetime`设置,确保其值符合项目需求。例如,如果希望Session在24小时内不失效,应设置为86400...

    详解php设置session(过期、失效、有效期)

    默认情况下,PHP的Session过期时间由`session.gc_maxlifetime`配置决定,单位是秒。你可以通过`ini_set`函数来动态设置它,如下所示: ```php ini_set('session.gc_maxlifetime', 3600); // 设置为3600秒,即1小时...

    ajax实现session不过期(避免页面过期的现象)

    然而,由于Web应用的无状态特性,如果用户在一定时间内没有与服务器进行交互,服务器可能会认为用户已经离开,并导致Session过期,从而用户不得不重新登录或重新填写表单信息。这在用户需要较长时间完成操作的场景中...

    jQuery ajax全局函数处理session过期后的ajax跳转问题

    总结一下,处理Ajax请求中的会话过期问题时,关键在于要在服务器端和客户端共同配合,服务器端通过某种机制识别Ajax请求并返回正确的状态消息,客户端则需要有相应的逻辑来处理这些消息,并作出适当的反应。...

    一般应用程序中如何处理Web页面的Session问题

    在实际应用中,可以通过定期发送空的Ajax请求到服务器来维持Session的有效性,防止因为长时间无操作而导致的Session过期。这种方式特别适用于那些用户可能会长时间不进行交互的Web应用。 5. **考虑使用Token进行...

    Extjs 4.1 (MVC) 如何动态加载控制层以及session 过期该如何处理

    处理Session过期的问题是一个常见的挑战,尤其是当使用动态加载的控制器时。当Session过期后,由于控制器无法正常初始化,可能导致某些功能无法正常工作。这个问题的解决方案通常涉及到前后端的配合。 在后端处理...

    界面 ext 4.1 mvc框架 动态加载控制层 后台session 过期处理

    前端EXTJS应用中,可以利用Ajax请求的回调函数来处理session过期。在全局的Ajax配置中监听`requestcomplete`事件,检查返回的响应,如果发现session超时,则弹出提示并重定向到登录页面: ```javascript // 在app中...

    使用Ajax时处理用户session失效问题的解决方法

    通过这样的方式,我们能够有效地处理Ajax请求时的用户session失效问题,确保用户在session过期后能够被正确地引导至登录页面。同时,这也是一种常见的跨域问题解决方案,因为跨域请求同样需要在服务器端返回正确的...

    ajax请求Session失效问题

    这样,我们就成功地解决了AJAX请求Session失效的问题,既保持了用户体验的连贯性,又确保了系统的安全性。记住,无论使用哪种框架或技术,关键在于有效地沟通服务器和客户端,以便在Session失效时能够优雅地处理这种...

    Session过期后自动跳转到登录页面的实例代码

    在Web开发中,Session是服务器用来跟踪用户状态的一种机制。当用户登录后,服务器会创建一个Session,并将用户...在实际应用中,还需要考虑其他因素,如Ajax请求的处理、防止无限重定向问题以及提供友好的提示信息等。

    ext session失效 页面跳转

    在Web开发中,Session是服务器用来跟踪用户状态的一种机制,特别是在多用户同时访问的应用中,如EXT...这种机制确保了用户的会话安全,防止了未经授权的访问,并且能够优雅地处理Session过期的情况,提高用户体验。

    JS Ajax请求会话过期处理问题解决方法分析

    解决JS Ajax请求会话过期的问题,可以采用以下策略: 1. **服务器端处理**: - 在服务器端,我们可以设置一个过滤器或者拦截器,在接收到请求时检查会话状态。如果发现会话过期,可以在响应头中添加一个自定义的...

    JSPsession超时提示

    在Web应用程序中,`session` 是一种常用的技术手段,用于保存用户的状态信息。它能够帮助开发者在多个页面请求之间保持用户的数据一致性。然而,为了提高安全性以及减轻服务器负担,通常会为 session 设置一个超时...

    ajax 操作全局监测,用户session失效的解决方法

    本文介绍了使用AJAX操作时全局监测用户session失效并解决该问题的方法。AJAX,即异步JavaScript和XML,是一种用于浏览器与服务器之间进行异步通信的技术。它允许网页在无需重新加载的情况下与服务器交换数据,并更新...

Global site tag (gtag.js) - Google Analytics