У меня есть страница aspx, на которой я использую объект XDomainRequest для заполнения двух div (ов) html, возвращенным из ответа AJAX.
Я использовал Jquery, чтобы получить div и выполнить «each ()» для извлеченногоСписок
var divs = $("div");
divs.each(function(index) {
if (window.XDomainRequest) {
xdr = new XDomainRequest();
if (xdr) {
xdr.onload = function() {
alert("XDR Response - " + xdr.responseText);
var currentDivID = divs[index].attributes["id"].value;
var selectedDiv = $("div[id='" + currentDivID + "']");
if (xdr.responseText == '') selectedDiv.attr("style", "display:none;");
else selectedDiv.append(xdr.responseText);
};
xdr.open("GET", xdrUrl);
try {
xdr.send();
} catch (e) {
alert(e);
}
} else {
alert('Create XDR failed.');
}
} else {
alert('XDR not found on window object .');
}
}
Теперь, что происходит, у меня есть два Div на странице с разными идентификаторами, и когда этот код работает на "$ .ready (function () {})", оба запроса асинхронноотправлено на сервер и обработано
результат равен
1. иногда при загрузке получают ответ для второго div в обоих результатах div.
2. IE отправляет только один запрос на сервер (IЯ использую Fiddler, чтобы увидеть, какие запросы отправляются на сервер).
Кто-нибудь может подсказать мне, что не так с кодом?Насколько я знаю, XDR не поддерживает синхронные вызовы, а асинхронные вызовы дают мне неверные результаты.Любой обходной путь / совет для этой проблемы.