接到一个项目,自己给加了一个类似于bbs的消息系统,由于http的无连接性,需要浏览器定时访问服务器查看是否有新消息存在,如果存在,则弹出窗口提示,同时刷新页面,显示已经存在的新消息数。
在网上搜了大量的资料,试验了各种方法
<meta … refresh…>
框架中页面嵌入<iframe>,js代码refresh iframe src
这两种方法都会造成页面的显式刷新,效果很不好
然后我采用了请求延迟返回的方法,如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="Java.util.*" %>
<%@ page import="com.tju.msnrl.guard.util.*" %>
<%@ page import="com.tju.msnrl.guard.db.util.*" %>
<html>
<head>
<link rel="stylesheet" href="css/bottom.css" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function RefreshRight() {
top.bottom_right.location.reload();
}
function RefreshMiddle() {
alert("您有新消息");
top.bottom_middle.location.reload();
}
function RefreshSelf(){
window.location.reload();
}
-->
</script>
</head>
<!--
************************************************************
判断是否有新消息,
1)消息监听器在 "用户登录"和"离开" 时被设置 是否有新的系统消息
2)上下文全局变量在线用户users,在 "发送消息"和"初审完毕"和"终审完毕" 时被设置,是否有新消息
消息处理
1)如果有新消息,则页面刷新时对 bottom_middle.JSP 和 bottom_right.jsp 和本页面
页面进行刷新,显示更新后的消息
2)如果没有新消息,则一直循环等待新消息
************************************************************
-->
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




