• 防止session失效的方法

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 问题描述

    在协同编辑的时候,如果用户在编辑页面停留的时间过长,会导致session失效,当用户提交的时候编辑的内容就不见了。很不好!

    • 解决的思路

    最容易想到的应该是将session的默认时间增大。但是这种方法,一方面没有从根本上解决问题;另一方面会占用更多的系统资源。不可取!

    最好的方法是不改变现有的session失效时间,二是保证用户在编辑页面上的时候永不失效。基于这个思路,其方法就是:在编辑页面嵌套一个iframe(此iframe的高宽均设置为0,即在编辑页面上看不到这个iframe),在iframe中的页面每个一段时间自动刷新(刷新的时间间隔比session的失效时间稍短),这样只要用户停留在编辑页面,session永不失效,如果用户离开页面,则到达session失效时间,session就会失效。

    • 代码

    编辑页面的代码片段:

    <!-- 防止session失效-开始 -->

    <iframe  src="/lc/keepSessionAlive.jsp" frameborder="0" scrolling="no"></iframe> 

    <!-- 防止session失效-结束 -->

    Iframe所包含的页面:

    /lc/keepSessionAlive.jsp

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script type="text/javascript">

        window.setTimeout("reloadPage()",1600000);

        function reloadPage(){

           window.location.reload();

        }

    </script>

    PS:如果其他页面想防止session失效,只需要引入

    <iframe  src="/lc/keepSessionAlive.jsp" frameborder="0" scrolling="no"></iframe> 

    • 标签:
    • 方法
    • 用户
    • 时间
    • 防止
    • 编辑
    • session
    • reloadpage
    • iframe
    • 失效
    • 页面
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部