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文件包含内容
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);
}
}
}
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文件的页面写如下代码
{
GetData();
}
protected void GetData()
{
SqlServerDataBase db = new SqlServerDataBase();
DataSet dt = db.Select("自己的sql语句") ", null);
Response.ContentType = "text/xml";
Response.Write(dt.GetXml());
Response.End();
}
<
script type
=
"
text/javascript
"
language
=
"
javascript
"
>
function pageonloadxml()
{
GetXmlHttp(aa.aspx',3);
GetXmlHttp(bb.aspx',1);
setTimeout("pageonloadxml();",10000);
}
< / script>
< body onload = " pageonloadxml(); " >
当然,自己还可以再写一些控制函数,来控制页面的刷新或数据的回调。
function pageonloadxml()
{
GetXmlHttp(aa.aspx',3);
GetXmlHttp(bb.aspx',1);
setTimeout("pageonloadxml();",10000);
}
< / script>
< body onload = " pageonloadxml(); " >