由于session的时间维持的比较短,在这里我用定时刷新的方法向服务器端发送请求。以保存session的状态。
a.aspx
<script type="text/javascript">
function makeRequest()
{
var guid = rnd();
//alert(guid);
//记住给个随机数,不然的话有缓存
var url = "../GetSession.aspx?id=" + guid;
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleRefresh;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
//禁止IE缓存
//http_request.setRequestHeader("If-Modified-Since","0");
//每60秒刷新一次页面
//setTimeout("makeRequest()", 60000);
}
//创建xmlHttp
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
//返回信息
function handleRefresh()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
//每60秒刷新一次页面
//alert("OK");
setTimeout("makeRequest()", 60000);
}
}
}
//创建随机数
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd()
{
rnd.seed = (rnd.seed*9301+49297) % 233280;
return rnd.seed/(233280.0);
}
function rand(number)
{
return Math.ceil(rnd()*number);
}
</script>
//页面加载
<body οnlοad="makeRequest()">
在GetSession.aspx页面中要做的就是把session值重新赋值一次。
Session.add("Name",value);
方法比较笨哈,但是实用。*_&