char是一个简单的聊天室 application域, 以后上传源码
www.cszhang.cn/chat
具体代码如下
<scripttype="text/javascript">
var num=2;
window.onload = function(){
//当进入窗口是自动执行此方法
sayHi();// 执行 sayHi()方法 ,先加载第一次
}
function focusbody(){// 又定义一个 focusbody()方法,
setInterval('sayHi();', 1000); // 执行自动无线循环方法 1000为1秒
}
function sayHi(){
//3. 创建一个XMLHttpRequest对象
var request = newXMLHttpRequest();
//4.准备发送请求数据:url
var url="showMsg1.jsp"; // 这点是我自己想到的,中间建立一个媒介showMsg1.jsp,让showMsg1.jsp的内容是从网页上 java Bean 里的Linkedlist打印的聊天消息
showMsg1.jsp的内容
<%@ pagelanguage="java" import="java.util.*" contentType="text/html" pageEncoding="GBK"%>
<jsp:useBeanid="msgs" class="java.util.LinkedList"scope="application" /> -->
<%
java.util.Iterator ite= msgs.iterator();
while(ite.hasNext()){
out.println(ite.next());
}
%>
varmethod="GET"; // 设置请求方法为get
//5.调用XMLHttpRequest 对象的open方法
request.open(method,url);// 如上
//6. 调用XMLHttpRequest 对象的send方法
request.send(null); //参数为0
//7.为XMLHttpRequest 对象添加 onreadystatechange 响应函数
request.onreadystatechange= function(){//XMLHttpRequest对象的onreadystatechange事件,如下,一旦改变执行方法
onreadystatechange |
存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 |
//8. 判断 响应是否完成 : XMLHttpRequest 对象的readyState 属性值为4的时候
if(request.readyState == 4){ //XMLHttpRequest对象的readyState属性等于4时是响应已经完成
//9.再判断响应是否可用 XMLHttpRequest 对象的status属性 为200时
if(request.status == 200 || request.status== 304){
//XMLHttpRequest对象的status属性等于200或304时是响应已经完成
//10.打印响应结果 responseText
document.getElementById("divbox").innerHTML=request.responseText+num;
//XMLHttpRequest对象responseText属性即接收到的值,输出在 ID为divbox 的 div中
}
}}
num++; //参数而已
}