日期:2014-05-16  浏览次数:20324 次

getElementsByTagName 和 selectNodes谁更快
documentElement.selectNodes("a")  
  documentElement.getElementsByTagName("a") 

  但就达到相同的目的,两种方法谁更快一些?

------解决方案--------------------
个人觉得是documentElement.getElementsByTagName("a") 快吧。。。
------解决方案--------------------
都一样吧!都是dom!!要快用SAX


------解决方案--------------------
我觉得一样 回复内容太短了! 

------解决方案--------------------
如果dom不是很大的,差别不大的,比较没太大意义。真要快的话就像2楼说的用sax
------解决方案--------------------
实践即真理:
JScript code
var stringToDom=function(text) { 
  var doc;
  if(window.ActiveXObject) {
    doc = new ActiveXObject("MSXML2.DOMDocument");
    doc.loadXML(text).documentElement;
  } else {
    doc = (new DOMParser()).parseFromString(text,"text/xml");
  }
  return doc;
}
var xmlDoc=stringToDom(" <body> <a href='a'>a </a> <a href='b'>b </a> </body>");
var c,d1=new Date();
for(var i=0;i <100000;i++){
  c=xmlDoc.getElementsByTagName("a");
}
document.write("getElementsByTagName: ",new Date()-d1);
d1=new Date();
for(var i=0;i <100000;i++){
  c=xmlDoc.selectNodes("a");//ff好像出不来
}
document.write(" <br/>selectNodes: ",new Date()-d1);

------解决方案--------------------
它俩实现的目的不一样吧。
documentElement.selectNodes("a") 中的a 包括着路径信息的吧。