我正在创建一个Windows小工具,我使用" ActiveXObject" s从多个URL获取数据。我听说JavaScript是单线程的,但ActiveXObjects并行运行,它们会修改导致错误的news
变量。有没有办法锁定变量,以便我可以阻止它?
顺便说一句,我试过了xmlDocument.async = false
但它有效,但它引入了太多的延迟。我正在寻找替代方案。
我的代码:
for(var i = 0; i < noFeeds; i++){
var URL = System.Gadget.Settings.readString("feedURL"+i);
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.onreadystatechange = function(){
if(xmlDocument.readyState == 4){
if( xmlDocument.getElementsByTagName("item").length != 0 )
RSSChannel(xmlDocument, news);
else
AtomChannel(xmlDocument, news);
}
};
xmlDocument.load(URL);
}