您的位置:首页 > Web前端 > JavaScript

javascript 中 ajax  事例 (copy)

2012-12-05 20:37 537 查看
(1)first.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>

<title>first.html</title>

</head>

<body>

<p align="center">
模拟收件箱
</p>
<hr>
<div align="center"
id="mailtable">

</div>
<script
language="javascript">
var xmlHttp=false;
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
xmlHttp=false;
}
}
if(!xmlHttp && typeof
XMLHttpRequest !='undefined'){
xmlHttp=new XMLHttpRequest();
}
//定义表格数据
var mail_list=new Array();
function drawtable(){
var table="<table border=\"1\" width=\"80%\"
id=\"table1\" cellspacing=\"0\"
cellpadding=\"0\">";
table+="<tr><td
width=\"20%\">发件人</td><td
width=\"60%\">标题</td><td
width=\"20%\">发件时间</td></tr>";
for(i=0;i<mail_list.length;i++){
table+="<tr><td
width=\"20%\">"+mail_list[i].sender+"</td><td
width=\"60%\">"+

mail_list[i].title+"</td><td
width=\"20%\">"+mail_list[i].sendtime+"</td><tr>";
}
table+="</table>";

window.document.getElementByIdx_x("mailtable").innerHTML=table;
}
//向表格中插入一条数据
function addMail(id,sender,title,sendtime){
var obj=new Object();
obj.id=id;
obj.sender=sender;
obj.title=title;
obj.sendtime=sendtime;
for(i=mail_list.length;i>0;i--){
mail_list[i]=mail_list[i-1];
}
mail_list[0]=obj;
}
//检查服务器是否有邮件到达
checkmail();
function checkmail(){
var url="mailserver.jsp";
xmlHttp.open("POST",url,false);
xmlHttp.onreadystatechange=analresponse;
//发送请求
xmlHttp.send(null);
setTimeout("checkmail()",5000);
}
function analresponse(){
if(xmlHttp.readyState==4){
var response=xmlHttp.responseText;
if(response.length>1){
//解析返回的数据,取出发件人,标题,发件时间,更新页面
//获得ID
var id=getstringfromdata(response,"id");
var sender=getstringfromdata(response,"sender");
var title=getstringfromdata(response,"title");
var sendtime=getstringfromdata(response,"sendtime");
if(id!=""){
//在表格数据中加入一条
addMail(id,sender,title,sendtime);
//重新画表格
drawtable();
//如果当期浏览器不是焦点,则在任务栏闪烁
window.focus();
}
}
}
}
function getstringfromdata(strin,tag){
var tag1="<"+tag+">";
var tag2="</"+tag+">";
var i1=strin.indexOf(tag1);
if(i1<0)
return "";
i1 += tag1.length;
var i2=strin.indexOf(tag2);
if(i2<0)
return "";
return strin.substring(i1,i2);
}
</script>

</body>
</html>

(2)mailserver.jsp中

<%@ page language="java" import="java.util.*"
pageEncoding="GB18030"%>
<%
int x = Math.abs(new Random().nextInt(10));
System.out.println("==========" + (new
Random().nextInt(10)));
if (x % 10 == 3) {
String mail = "<mail>" +
"<id>"
+ Math.abs(new Random().nextInt()) +
"</id>"
+ "<sender>发送者" + x
+ "</sender>" +
"<title>模拟邮件标题"
+ new Random().nextInt(1000) +
"</title>"
+ "<sendtime>" + new
Date().toLocaleString()
+ "</sendtime>" +
"</mail>";
out.print(mail);
System.out.println(mail);
}
%>

实时提醒邮件功能;用ajax刷的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: