读书人

怎么在ajax中刷新多个数据

发布时间: 2012-02-11 09:51:35 作者: rapoo

如何在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;




[解决办法]
探讨

我需要读底层寄存器中的值,那我想问下 用activex控件能实现嘛

[解决办法]
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];


}
}

读书人网 >Ajax

热点推荐