Я создаю небольшое приложение Adobe AIR (мое первое), используя HTML + Javascript. Мне нужно запустить более одного асинхронного запроса данных, но второй, похоже, не стрелял (обратите внимание, что запросы не запускались одновременно изначально). Я попытался скрыть программу до минимума, которая показала проблемы, и сначала только первый запрос был запущен, но потом все стало странным. Код и вывод следующим образом:Adobe AIR и несколько XMLHttpRequests ... weird
<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, но получить не responseText или responseXML в моей функции readystatechange , Он называется только один раз со статусом, установленным в 0, и readistate of 4. В вашем коде сказано, но где и как вы храните содержимое страницы? Вот пример кода: http://stackoverflow.com/questions/14155112/unable-to-get-response-status-from-adobe-air-xmlhttprequest – HMR
Обратите внимание, что в Windows AIR используется IE, поэтому, когда мой IE был настроен на работа в автономном режиме. У меня были странные вещи с запросом. Некоторые из них были в порядке, поскольку они были в кеше, а некоторые потерпели неудачу. – HMR