如何在ajax中刷新多个数据 - Web 开发 / Ajax
- HTML code
<html><head><title>E1_2</title><script type="text/javascript">var xmlHttpfunction showHint(){ xmlHttp=GetXmlHttpObject() if(xmlHttp==null) { alert ("您的浏览器不支持AJAX!"); return; } var C_url="gethint.asp"; C_url=C_url+"?q="+"CAlarm_State"; C_url=C_url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",C_url,true); xmlHttp.send(null); var t=setTimeout("GetState()",1000)}function stateChanged(){ if(xmlHttp.readyState==4) { document.getElementById("C_State").src=xmlHttp.responseText; }}function GetXmlHttpObject(){ var xmlHttp=null; try { xmlHttp=new XMLHttpRequest(); } catch(e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp;}</script></head><body onload=showHint()><form method=POST action=><table border="0" width="200" cellspacing="4" cellpadding="4"><tr><td align="center" width="100"><font size="5">MTP-001</font></td><td> </td></tr><tr><td align="center" width="100"><img border="0" id="H_State" width="24" height="24"> <img border="0" id="C_State" width="24" height="24"></td><td><p align="right"> <input type="submit" value=RUN name=run> <input type="submit" value=STOP name=stop></td></tr><tr><td align="center" width="100"><b><font size="5">H C</font></b></td><td align="center"><input type="submit" value=CLR name=clr></td></tr></table></form></html>这里我想刷新是链接的两个图片 现在只能刷新一个 能实现刷新两个嘛 ?
上面的代码我也只实现了一个的刷新 ,想同时刷新两个数据需要如何去做呐
等待指教
[解决办法]
responseText在服务器可以设置成为json格式或者是xml格式
responseText 返回{src1:src1,src2:src2}这样的josn格式
document.getElementById("C_State1").src=xmlHttp.responseText.src1;
document.getElementById("C_State2").src=xmlHttp.responseText.src2;
[解决办法]
[解决办法]
3楼正解。
解决办法有很多,最理想的是用json格式返回数据,其次是用逗号分隔的地址,麻烦点就用XML。
需要后台gethint.asp这块改一下,前台stateChanged函数改一下,很简单的。
[解决办法]
1.要在服务器端把两个数据放进去
比如,用换行符分割,按照C_State1,C_State2的顺序写入response
2.在客户端,把数据分割开然后付值。
如在你的函数中
function stateChanged()
{
if(xmlHttp.readyState==4)
{
//取得大数据块
var csvdata=xmlHttp.responseText;
//根据写入规则分割数据(这里使用换行符)
var LF = String.fromCharCode(10);
var lineData = csvdata.split(LF);
//根据写入顺序进行取得。
document.getElementById("C_State1").src=lineData[0];
document.getElementById("C_State2").src=lineData[1];
}
}