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刷的。
<!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刷的。
相关文章推荐
- 【JavaScript】Ajax 中如何上传文…
- deep&nbsp;copy&nbsp;and&nbsp;shadow&nbsp;copy
- JavaScript&nbsp;的学习程序整理(…
- Copy PR header te…
- ASP.NET AJAX客户端编程之旅(三)——让JavaScript和C#无障碍沟通:数据类型自动转换&序列化
- javascript&nbsp;只让输入数字
- jQuery ajax - serialize() 方法
- If&nbsp;VNCView&nbsp;doesn&#039;t&nbsp;support&nbsp;copy/…
- javascript调用HTTPS&nbsp;Webservice:1…
- javascript&nbsp;获取url中的参数对
- javascript&nbsp;对象&nbsp;属性
- javaScript——优化&nbsp;&nbsp;
- jQuery&nbsp;AJAX实现调用页面后台方法
- Drupal7-An AJAX HTTP&n…
- ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->add 函数
- JavaScript Tip/Trick: 动态创建Table时,在IE中需要注意的一个问题
- <<High Performance JavaScript>>读书笔记-7.Ajax
- javascript 得到顶层iframe
- JavaScript Tip/Trick: 动态创建Table时,在IE中需要注意的一个问题
- Copy PR header te…