Wednesday, December 2, 2009

loadXmlIsSAsync.js (testcase)

/** loadXml - blocking, async propery ignored ? load(DOM) - blocking, async propery ignored ? load(uri) - blocking/nonblocking, async propery honored **/ function main() { var progids= [ "Msxml.DOMDocument", "Msxml2.DOMDocument", "Msxml2.DOMDocument.3.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.6.0", "Msxml2.FreeThreadedDOMDocument.3.0", "Msxml2.FreeThreadedDOMDocument.4.0", "Msxml2.FreeThreadedDOMDocument.5.0", "Msxml2.FreeThreadedDOMDocument.6.0" ]; var depth=200,width=200; var line=nTimes("<test>",depth)+nTimes("</test>",depth); var strXml= "<root xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" +nTimes(line,width) +"</root>"; for(var i=0;i<progids.length;i++) { //loadXML(str) var dom1s=loadXml(progids[i],false,strXml); var dom1a=loadXml(progids[i],true,strXml); // load(dom) var dom2s=load(progids[i],false,dom1s); var dom2a=load(progids[i],true,dom1s); //load(url) var dom3s=load(progids[i],false,"loadXmlIsAsync.xml"); //200x200 size var dom3a=load(progids[i],true,"loadXmlIsAsync.xml"); print([]); } } function loadXml(progid,async,strXml) { var _dbg=["\r\n"+progid+".loadXml(strXml) "+async]; var xml=new ActiveXObject(progid); xml.onreadystatechange=function() { _dbg.push("rsch:"+xml.readyState); //window.confirm(); } xml.async=async; var success=xml.loadXML(strXml); _dbg.push("success:"+success); _dbg.push("xml.async:"+xml.async); _dbg.push("xml.readyState:"+xml.readyState); _dbg.push("xml.length:"+xml.xml.length); _dbg.push("xml.parseError:"+xml.parseError+","+xml.parseError.reason); print(_dbg); return xml; } function load(progid,async,xmlSource) { var _dbg=["\r\n"+progid+".load("+(typeof xmlSource=="string"?"url":"dom")+") "+async]; var xml=new ActiveXObject(progid); xml.onreadystatechange=function() { _dbg.push("rsch:"+xml.readyState); //window.confirm(); } xml.async=async; var success=xml.load(xmlSource); _dbg.push("success:"+success); _dbg.push("xml.async:"+xml.async); _dbg.push("xml.readyState:"+xml.readyState); _dbg.push("xml.length:"+xml.xml.length); _dbg.push("xml.parseError:"+xml.parseError+","+xml.parseError.reason); print(_dbg); return xml; } function nTimes(str,n) { var buff=new Array(n); for(var i=0;i<n;i++){buff[i]=str;}; return buff.join(""); } var print; if(typeof window != 'undefined') { print=function(_dbg) { document.getElementsByTagName("body")[0].innerHTML+=("<HR>"+_dbg.join("<BR>")); } window.onload=function() { main(); } } else { print=function(_dbg) { WScript.Echo(_dbg.join("\r\n")); } main(); }

No comments:

Post a Comment