-
防止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条)
聪明如你,不妨在这 发表你的看法与心得 ~