想通过设session.timeout的过期时间让session永不过期是不可能的。写到Cookies里是比较好的方法,网上也有很多这样的教程!
还有就是用在要保持session的页里设隐藏iframe每隔一段时间(这个时间小于session.timeout的时间)把刷新一 次frame里的空页面!实现方法如下:
在要保持session页里(主框架页)加上:
< iframe width = 0 height = 0 src = "/blog/SessionKeeper.asp" > </ iframe >
同目录下建一下SessionKeeper.asp的文件。
< html >
< head >
< meta http-equiv = "Refresh" content = "900000;url=sessionKeeper.asp" >
<!--每隔900秒刷新一下自 己,为了和服务器通讯一下,保持session不会丢-->
</ head >
</ html >
< head >
< meta http-equiv = "Refresh" content = "900000;url=sessionKeeper.asp" >
<!--每隔900秒刷新一下自 己,为了和服务器通讯一下,保持session不会丢-->
</ head >
</ html >
这种方法还是比较长见的,另外还有一种和上面类似的方法,不过他不是用meta自动刷新嵌套的iframe的方法。他是用 javascript:window.setTimeout("functionname()",10000);第隔一段时间时间自动调用一个函数的方 法,当然函数里还是要去连接一个空的文件。具体方法如下:
在要保持session面里加上:
JavaScript
<script id=Back language=javascript></script>
<script language=javascript>
function keepsession(){
document.all[ "Back" ].src= "/blog/SessionKeeper.asp?RandStr=" +Math.random();
//这里的 RandStr=Math.random只是为了让每次back.src的值不同,防止同一地址刷新无效的情况
window.setTimeout( "keepsession()" ,900000); //每隔900秒调用一下本身
}
keepsession();
</script>
<script language=javascript>
function keepsession(){
document.all[ "Back" ].src= "/blog/SessionKeeper.asp?RandStr=" +Math.random();
//这里的 RandStr=Math.random只是为了让每次back.src的值不同,防止同一地址刷新无效的情况
window.setTimeout( "keepsession()" ,900000); //每隔900秒调用一下本身
}
keepsession();
</script>
这样同一目录下建一个空内容的sessionKeeper.asp就文件就可以了!