`

Microsoft XMLDom读取数据原来默认是异步的! [转]

 
阅读更多
转于 http://blog.csdn.net/firewing/article/details/323923
今天做一很简单的功能,就是将xml数据用xsl转换一下而已。以前一直都没注意xmldom获取数据默认是异步的方式的。每次都是load完xml数据以后就直接调用transfer了。之前因为一直都是在本地调试,没有部署在Web服务器上,但是今天部署上去后发现transfer时经常报"The data necessary to complete this operation is not yet available. "错误。郁闷了好久,才发现原来Dom.load(dataSrc)里面应用的数据源由于速度较低,在transfer之前都还没有load完。查了半天程序,因为transfer是在load后面的一位Dom如果没有load完的话肯定不会执行转换,而且尝试过直接在IE上打开这些XML文件和XSL文件一点问题都没有。于是赶快查MSDN,发现async property of a DOMDocument默认是true的。所以load方法执行了之后马上就返回了,这时候不一定会已经把我需要的xml读取完成,造成了上面的错误。郁闷。

        后来把Transfer的动作放在了onreadystatechange事件里面,判断readyState等于4才开始作转换。终于搞定了问题。

   感慨一下:基础知识不扎实啊,对自己用到的东西不了解啊!


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics