首先,对于页面的定时刷新,可以用<meta http-equiv="refresh" content="2;">2秒刷新,不过这种方式会刷新页面,对用户来说,那是相当晃眼睛啊。所以我选择ajax方式定时刷新。
可以定义一个框架frameset,然后把要刷新的页面放到某个frame里,设置大小为0,这样就看不到了。
代码如下:
<script type="text/javascript">
//创建xmlHttp
var xmlHttp;
function makeRequest() {
var guid = rand();
//记住给个随机数,不然的话有缓存
var url = "CheckMessage.aspx";
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleRefresh;
xmlHttp.open("GET", url, false);
xmlHttp.setRequestHeader("Cache-Control","no-cache");
xmlHttp.setRequestHeader("If-Modified-Since","0");
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlHttp.send(null);
}
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) {
showmes();
setTimeout("makeRequest()", 5000);//这里设置刷新频率
} }
}
//创建随机数
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);
}
/弹出提示框
function showmes()
{
var Message="有1个指令";
var MSG1 = new CLASS_MSN_MESSAGE('2',200,120, '消息提示','',Message,'self', 'Default.aspx');
MSG1.rect(screen.width - 205, null, null, screen.height - 60);
MSG1.speed = 2;
MSG1.step = 10;
MSG1.show();
}
</script>
</head>
<frameset border=0 frameborder=0 frameSpacing=0 rows=0,*>
<!--下面一行就是隐藏帧-->
<frame name=Message noResize scrolling=no src=CheckMessage.aspx οnlοad="makeRequest()" >
<frame name=Normal noResize src=_Desktop.aspx>
</frameset>
</html>
上面代码就可以刷新CheckMessage.aspx页面,在checkmessage的cs代码里可以进行访问数据库等操作,然后返回xml。