javascript - Adobe AIR 和多个 XMLHttpRequest ……很奇怪

标签 javascript ajax air xmlhttprequest

我正在使用 HTML+Javascript 制作一个小型 Adob​​e AIR 应用程序(我的第一个)。我需要运行多个异步数据请求,但第二个请求似乎没有触发(请注意,这些请求最初并不是同时运行的)。我尝试将程序剥离到出现问题的最低限度,一开始只触发第一个请求,但后来事情变得很奇怪。代码和输出如下:

<html> 
<head>
    <script type="text/javascript" src="AIRAliases.js"></script> 
    <script type="text/javascript">         
        function download(page) {
            var url = "http://en.wikipedia.org/w/api.php?action=parse&format=xml&page=" + page;
            xmlhttp = new XMLHttpRequest();
            xmlhttp.open("GET", url,true);
            xmlhttp.onreadystatechange=function(){
                if (xmlhttp.readyState == 4) {
                    air.trace("Done");
                }
            }
            xmlhttp.send(null);
        }

        function appLoad() { 
            download("Main Page");
            download("Main Page");
        }  
    </script> 
</head> 
<body onLoad="appLoad()"> 
</body> 
</html>

预期输出:

Done
Done

实际输出:

C:\AIRSDK\apps\HelloWorld>adl HelloWorld-app.xml
Done
C:\AIRSDK\apps\HelloWorld>adl HelloWorld-app.xml
Done
C:\AIRSDK\apps\HelloWorld>adl HelloWorld-app.xml
Done
C:\AIRSDK\apps\HelloWorld>adl HelloWorld-app.xml
Done
Done
Done
Done
Done
Done
Done

有人见过这样的事情吗?

最佳答案

简单的答案,你不应该重复使用 xmlhttprequest 对象(即使你没有意识到你是因为你是 Javascript 的菜鸟)。

这一行:

            xmlhttp = new XMLHttpRequest();

应该是:

            var xmlhttp = new XMLHttpRequest();

关于javascript - Adobe AIR 和多个 XMLHttpRequest ……很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307649/

相关文章:

javascript - 将一些有用的 js 库包装到 Angular 模块的好习惯是什么?

javascript - qTip2 中的 Ajax 表单

javascript - 如何使用 jQuery 对注入(inject)的 ajax 表单进行多次验证?

php - jQuery ajax 多行 "script"响应

css 隐藏较低的 div 背景

actionscript-3 - StageWebView 和 Android 的缩放/缩放问题

android - 相机胶卷图库链接?!土坯空气

javascript - 如何存储 Google Chrome 扩展程序的偏好设置?

javascript - Angular 2 中出现 404 错误,即使后端 Nodejs url 在浏览器中输入时有效并显示来自 Oracle 的数据

javascript - IE8 中的 Colorbox 出现摇晃