|
 
|
1#
发表于 2009-2-4 15:01
| 只看该作者
在index.jsp文件中应用Ajax,在发送请求的方法中调用“s2.jsp”,
想实现每秒钟发送一次请求,所以在程序中使用setInterval()方法。
具体代码如下:
<script type="text/javascript">
var req=false;//异步请求提交对象
//1、初始化异步请求提交对象
function init(){
if(window.ActiveXObject){
//IE
req=new ActiveXObject("Microsoft.XMLHTTP");
} else{
//firefox
req=new XMLHttpRequest();
}
// alert(req);
}
//发送请求
function sendReq(){
init();
var name=document.getElementById("name").value;
//2、指定处理返回值的函数
req.onreadystatechange=process;
//3、打开到资源的连接
// req.open("get","s2.jsp?name="+name);
//req.open("get","x.txt");
req.open("get","ts");
//4、发送请求
req.send(null);
}
//5、处理返回值
function process() {
//获取返回值
var v=req.responseText;
//alert(v);
var d=document.getElementById("d");
d.innerHTML=v;
}
//----------------------------------------
//发送请求
function sendReq2() {
init();
var sheng=document.getElementById("sheng").value;
//2、指定处理返回值的函数
req.onreadystatechange=process2;
//3、打开到资源的连接
req.open("get","ts2?sheng="+sheng,true);
//4、发送请求
req.send(null);
}
//5、处理返回值
function process2(){
if(req.readyState==4)
{
if(req.status==200)
{
var shi=document.getElementById("shi");
//获取返回值
var v=req.responseXML;
var root=document.getElementsByTagName("shi");
for(var i=0;i<root.length;i++){
var op=document.createElement("option");
op.innerText=root[i].firstChild.data;
shi.appendChild(op);
}
}
}
}
</script>
setInterval(sendReq,1000);//每1000毫秒调用一次sendReq方法
但是具体应用时,为什么并不是每秒调用sendReq方法,而只向a.jsp请求一次,就不再请求了呢? |
|