Adobe AIR и несколько XMLHttpRequests в настоящее время ... странно - PullRequest
0 голосов
/ 22 февраля 2010

Я создаю небольшое приложение Adobe AIR (мое первое) с использованием HTML + Javascript. Мне нужно выполнить более одного асинхронного запроса данных, но второй, похоже, не запускается (обратите внимание, что запросы изначально не выполнялись одновременно). Я попытался довести программу до минимума, в котором были проблемы, и сначала только первый запрос сработал, но затем все стало странным. Код и вывод следующие:

<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

Кто-нибудь видел что-нибудь подобное раньше?

1 Ответ

2 голосов
/ 22 февраля 2010

Простой ответ, вы не должны повторно использовать объекты xmlhttprequest (даже если вы не понимаете, что это так, потому что вы полный нуб в Javascript).

Эта строка:

            xmlhttp = new XMLHttpRequest();

Должно быть:

            var xmlhttp = new XMLHttpRequest();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...