首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

javascript读取长XML字符串,页面会卡死!读完了才释放,如何异步操作呢

2012-09-13 
javascript读取长XML字符串,页面会卡死!读完了才释放,怎么异步操作呢。function getxml(xml){this.isIEtru

javascript读取长XML字符串,页面会卡死!读完了才释放,怎么异步操作呢。
function getxml(xml) 

  this.isIE=true; if (window.ActiveXObject){isIE=true;}else{isIE=false;} 
  var node_xml;if (isIE) {xmlDc = new ActiveXObject("Msxml2.DOMDocument");} 
  else {if (document.implementation && document.implementation.createDocument) xmlDc = document.implementation.createDocument("","",null); } 
  xmlDc.async = true; if(isIE){xmlDc.loadXML(xml);} else {var oParser = new DOMParser();xmlDc = oParser.parseFromString(xml,"text/xml");} 
  return xmlDc; 

var data='
<x>
<r a="1" b="2" c="3" />
<r a="2" b="2" c="3" />
<r a="3" b="2" c="3" />
<r a="4" b="2" c="3" />
<r a="5" b="2" c="3" />
<r a="6" b="2" c="3" />
<r a="7" b="2" c="3" />
  .............
</x>';
//下面readdata函数读取长XML字符串,页面会卡死!读完了页面才释放,有没有异步操作方法呢。
function readdata(data) 
{
  xmlDoc=getxml(data);
  if(xmlDoc.childNodes.length!=0)
  {
  for(i=0;i<xmlDoc.childNodes[0].childNodes.length;i++)
  {  
  var a=xmlDoc.childNodes[0].childNodes[i].getAttribute("a");
  var b=xmlDoc.childNodes[0].childNodes[i].getAttribute("b");
  var c=xmlDoc.childNodes[0].childNodes[i].getAttribute("c");
  }
  }
}

[解决办法]
使用XMLHTTP、XMLHttpRequest去读取
[解决办法]
不懂,帮顶...

不过LZ可以在后台把XML转换成JSON返回给前边,然后用jQuery来处理JSON数据会不会快点儿
[解决办法]
用javascript 读XML字符串里面的内容了。

那可能没有太好的方法,只能使用 DOM操作。
[解决办法]
当然,也可以采用些优化的方法,如
 var droot = xmlDoc.childNodes[0]
 for(i=0,count = droot.childNodes.length;i<count ;i++)
{
var a=droot.childNodes[i].getAttribute("a");
var b=droot.childNodes[i].getAttribute("b");
var c=droot.childNodes[i].getAttribute("c");
}

看看效果如何

另外还有getElementsByTagName,selectNodes方法等
[解决办法]
干嘛用xml用json多好的选择啊
[解决办法]
干嘛用xml用json多好的选择啊

热点排行