У меня проблема, в основном с IE.Последовательные запросы Ajax без библиотеки jQuery/JS
Мне нужно иметь возможность обрабатывать n запросов один за другим. Но если я просто вызываю свою функцию ниже в IE цикла, то делает некоторые странные вещи (например, загружает только так много вызовов). Если я использую окно предупреждения, это доказывает, что функция получает все вызовы, и на удивление ЭТО РАБОТАЕТ!
Я полагаю, что для IE требуется больше времени, чем другие браузеры, и окно предупреждения делает именно это.
Вот мой код:
var Ajax = function(all) {
this.xhr = new XMLHTTPREQUEST(); // Function returns xhr object/ activeX
this.uri = function(queries) { // Takes an object and formats query string
var qs = "", i = 0, len = size(queries);
for (value in queries) {
qs += value + "=" + queries[value];
if (++i <= len) { qs += "&"; }
}
return qs;
};
xhr.onreadystatechange = function() { // called when content is ready
if (this.readyState === 4) {
if (this.status === 200) {
all.success(this.responseText, all.params);
}
this.abort();
}
};
this.post = function() { // POST
xhr.open("POST", all.where, true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(uri(all.queries));
};
this.get = function() { // GET
xhr.open("GET", all.where + "?" + uri(all.queries), true);
xhr.send();
};
if (this instanceof Ajax) {
return this.Ajax;
} else {
return new Ajax(all);
}
};
Эта функция отлично работает для одного запроса, но как я могу заставить его работать, когда называются так много раз в течение цикла?
Не только это, но когда вы начинаете второй запрос с использованием объекта SAME, предыдущий запрос прерывается. –
Комментарий спецификации - это предложение, а не стандарт. Вы можете вступить в нее. –
@ Без возврата Нет возврата: Спасибо ... Перефразировал мой ответ, чтобы указать на это как «предложение». –