技术开发 频道

asp.net+xml实现无刷新调数据


【IT168技术文档】

  这个实列只适合操作小数据量时使用,如果调用大量数据会出现很长的延时。同时加入识别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); } } }

0
相关文章