一点开始按钮,过了会页面就死了,并且也也没有弹出对话框 “4”,以下是我的代码,麻烦高手给看看
JSP:
<script type="text/javascript">
var XMLHttpReq; //创建XMLHttpRequest对象 function createXMLHttpRequest() {
if (window.ActiveXObject) {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}
} //发送请求函数 function sendRequest() {
createXMLHttpRequest();
var url = "track.do?method=init";
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
} // 处理返回信息函数 function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
alert("4");
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
alert("200");
showPage();
setTimeout("sendRequest()",4000);
}
}
}
function showPage(){
var xmlDoc = XMLHttpReq.responseXML;
var tracks = xmlDoc.getElementsByTagName("track");
var result="<table border=1><tr><td>卡 号</td><td>天 线</td></tr>";
for(var i=0;i<tracks.length;i++){
result +="<tr>";
var track=tracks[i];
result +="<td>"+track.getElementsByTagName("cardid")[0].firstChild.nodeValue+"</td>"
result +="<td>"+track.getElementsByTagName("antenna")[0].firstChild.nodeValue+"</td>"
result +="</tr>";
}
result +="</table>";
document.getElementById("data").innerHTML=result;
}
</script> </head>
<body bgColor="white" background="Image/right.gif">
<input type="button" value="开始接收" onclick="sendRequest()">
<div id="data"></div>
</body>
=================================================================================
Action:
result_list.add(show);
}
} // request.setAttribute("trackShow", result_list);
// return mapping.findForward("trackShow");
}
}
response.setContentType("text/xml");
PrintWriter out=response.getWriter();
out.println(parseToXML(result_list));
}catch(Exception e){
e.printStackTrace();
}
return null;
} public String parseToXML(List list){
StringBuffer sb=new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sb.append("<tracks>");
for(int i=0;i<list.size();i++){
TrackShow show=(TrackShow)list.get(i);
sb.append("<track>");
sb.append("<cardid>"+show.getCardid()+"</cardid>");
sb.append("<antenna>"+show.getAntenna()+"</antenna>");
sb.append("</track>");
}
sb.append("</tracks>");
return sb.toString();
}
}
settimeout()方法没使用错吧?
function sendRequest() {
createXMLHttpRequest();
var url = "track.do?method=init";
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
setTimeOut("sendRequest()",4000);
}
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
alert("4");
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
alert("200");
showPage();
sendRequest();
}
}
}
试试~
少了个/
show.getCardid(),有就是说action能执行
response.setContentType("text/xml");
PrintWriter out=response.getWriter();
out.println(parseToXML(result_list));
换成
response.setContentType("text/xml;charset=UTF-8");
response.getWriter().write(parseToXML(result_list));
response.getWriter().flush();
response.getWriter().close();
试试
但是过了500毫秒,并没有到action里面执行
这是什么原因?
你换我的方法试了吗