这个实列只适合操作小数据量时使用,如果调用大量数据会出现很长的延时。同时加入识别id(CallBackid),加入这个id的作用在于如果页面上有多处需要调用时,用来区分数据,否则会引起数据冲突。下面是代码:
js操作类(可单独封装成js类文件):
var xmlhttp;
var CallBackid ;//返回标志
//xml函数部分
function CreateXmlHttpRequest()

{
// 使用 try 来捕获创建失败,再换个方法来创建

try
{ // 如果不成功,那么尝试在较新 IE 里的方式
xmlhttp=new ActiveXObject("MSXML2.XMLHTTP");
}

catch(e)
{

try
{
// 失败则尝试使用较老版本 IE 里的方式
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

catch(e1)
{
xmlhttp=false;
}
}

if (!xmlhttp)
{ // 如果创建 XMLHttpRequest 对象失败,那么提醒访问者该页面可能无法正确访问
alert("Xml文件创建失败!");
return xmlhttp;
}
}

function GetXmlHttp(url,tk)

{
CallBackid = tk;//
if (url == null || url == "") return null;
var xmldom = new ActiveXObject("Microsoft.XMLDOM");
CreateXmlHttpRequest();
xmlhttp.open("GET",url,false,"","");
xmlhttp.onreadystatechange = startCallback;
xmlhttp.send(null); // 发送请求,因为是GET,所以send的内容为null

}
// 通过xmldom操作结果
// 因为使用异步方式所以要在 XMLHttpRequest 对象的状态改变时做相应的处理
function startCallback()


{

if(xmlhttp.readyState==4) // 如果 XMLHttpRequest 的状态为4,应该是ready来的,那么继续处理


{
if(xmlhttp.status==200) // 需要判断返回状态是否为200 OK,有些情况如文件不存在,就为返回404

{

switch(CallBackid )

{
case 1:
xmldom = xmlhttp.responseXML.documentElement;//每个引用定义的类名要区分开,要不数据会重复
//需要调用的函数名
break;
case 2:
VehDataxmldom = xmlhttp.responseXML.documentElement;
//需要调用的函数名
break;
case 3:
Aralmxmldom = xmlhttp.responseXML.documentElement;
//需要调用的函数名
break;
default:
break;
}

}
else

{
alert("HTTP error: "+xmlhttp.status);
}

}

}


执行数据库查询的aspx页面(此页面非引入js文件的页面,它只是调用数据的中间页),即url中cs文件包含内容
protected void Page_Load(object sender, EventArgs e)

{
GetData();
}
protected void GetData()

{
SqlServerDataBase db = new SqlServerDataBase();
DataSet dt = db.Select("自己的sql语句") ", null);
Response.ContentType = "text/xml";
Response.Write(dt.GetXml());
Response.End();

}

以上代码在点击按钮时触发,如果需要页面载入时调用或每隔一段时间就去调用实时数据,需在引用该js文件的页面写如下代码
<script type="text/javascript" language="javascript">
function pageonloadxml()


{
GetXmlHttp(aa.aspx',3);
GetXmlHttp(bb.aspx',1);

setTimeout("pageonloadxml();",10000);


}

</script>

<body onload="pageonloadxml();" >

当然,自己还可以再写一些控制函数,来控制页面的刷新或数据的回调。