XMLDOM 的async属性
定义和用法
async 属性可规定 XML 文件的下载是否应当被同步处理。
True 意味着 load() 方法可在下载完成之前向调用程序返回控制权。
False 意味着在调用程序取回控制权之前必须完成下载。
语法:
documentObject.async
实例
在所有的例子中,我们将使用 XML 文件 books.xml ,以及 JavaScript 函数 loadXMLDoc() 。
function loadXMLDoc(dname)
{
var xmlDoc;
// code for IE
if (window.ActiveXObject)
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument("","",null);
}
else
{
alert('Your browser cannot handle this script');
}
xmlDoc.async=false;
xmlDoc.load(dname);
return(xmlDoc);
}
异步的好处是可以立即返回,继续做其他的事
等装载完成后,再处理他
如
function loadIt()
{
var xmlDoc = new ActiveXOject("Microsoft,xmlDOC");
xmlDoc.async = true;
xmlDoc.onreadystatechange = handleIt();
xmlDoc.load(url);
return xmlDoc;
}
function handleIt()
{
if(xmlID.XMLDocument.readyState == 4)
alert("load xml complete");
}
<script>
var oDiv //添加用的节点
var nP //DIV的 padding-left
var xh //xmlhttp
function getXML()
{
oDiv = document.all.m
oDiv.innerHTML = "正在装载栏目数据,请稍侯......."
oDiv.style.display= ""
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET",a.value,true)
xh.send()
}
function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{
oDiv.innerHTML = "完成"
}
else
{
oDiv.innerHTML = "抱歉,装载数据失败。原因:" + xh.statusText
}
}
}
</script>
xmlhttp异步的例子:
URL:<input name=a value="http://www.microsoft.com">
<input onclick="getXML()" type="button" value="get HTML">
<input onclick="if(xh && xh.responseText)
oDiv.innerHTML=xh.responseText" type="button" value="output">
<div id=m></div>