最近负责的一个项目应用到了ajax技术,遇到一个问题,当xml文件过大的时候,程序的反应速度会比较慢,只有等到下载完成才能有响应.于是我设想能否在用户刚访问页面的时候就预先加载好xml文件.
研究了一下,代码如下:
[code]
<SCRIPT language=javascript>
<!--
var pubXmlDoc,pubXmlPath;
window.attachEvent("onload", CacheXml);
//预先加载xml数据
function CacheXml() {
self.defaultStatus = "Downloading Xml Data...";
pubXmlPath="your.xml"; //设置xml文件路径
pubXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
pubXmlDoc.async=true; //设置异步传输
pubXmlDoc.load(pubXmlPath);
pubXmlDoc.onreadystatechange=function(){
if(pubXmlDoc.readyState==4){
if( pubXmlDoc == null || pubXmlDoc.documentElement == null) {
return ;
}
self.defaultStatus = 'ok';
}
}
window.setTimeout(function(){pubXmlDoc.load(pubXmlPath);},10);
}
</SCRIPT>
Leave a Reply