我要保持Session不过期,主要是因为客户登陆后可能隔很长时间才操作,不想更改session过期时间,我想每隔几分钟刷新一下,也不想用iframe,就用ajax.客户端间隔一段时间访问server.php,客户端代码:
<script type="text/javascript">
function ajaxFunction(url)
{
var xmlHttp; try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{ try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
// 设置处理函数
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
// 从服务器的response获得数据
//alert(xmlHttp.responseText);
}
} xmlHttp.open("GET",url,true);
xmlHttp.setRequestHeader("If-Modified-Since","0"); // 禁止缓存
xmlHttp.send(null);
}
// 请求的url
var url = "server.php";
// 间隔秒数
var seconds =480;
setInterval("ajaxFunction(url)",seconds*1000);
</script>服务器Server.php:<?php
/**
* 为了定时刷新页面以保持Session
*/
session_start();
echo time();
?>但是隔半个小时去看还是过期了,为什么?
客户端的ajax请求是执行了的,
alert(xmlHttp.responseText); 打印出了正确数据,说明ajax请求正常。
<script type="text/javascript">
function ajaxFunction(url)
{
var xmlHttp; try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{ try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
// 设置处理函数
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
// 从服务器的response获得数据
//alert(xmlHttp.responseText);
}
} xmlHttp.open("GET",url,true);
xmlHttp.setRequestHeader("If-Modified-Since","0"); // 禁止缓存
xmlHttp.send(null);
}
// 请求的url
var url = "server.php";
// 间隔秒数
var seconds =480;
setInterval("ajaxFunction(url)",seconds*1000);
</script>服务器Server.php:<?php
/**
* 为了定时刷新页面以保持Session
*/
session_start();
echo time();
?>但是隔半个小时去看还是过期了,为什么?
客户端的ajax请求是执行了的,
alert(xmlHttp.responseText); 打印出了正确数据,说明ajax请求正常。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货