У меня есть страница aspx, на которой я использую объект XDomainRequest для заполнения двух div (ов) с помощью html, возвращаемого из ответа AJAX.
я использовал Jquery, чтобы получить дивы и выполнить «каждый()» на извлеченном СписокXDomainRequest object caching/асинхронный вызов
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 .');
}
}
Теперь, Что происходит, у меня есть две дивы на странице, которые имеют разные идентификаторы и при выполнении этого кода на «$ .ready (функция() {})», обе запросы асинхронно отправляются на сервер и обрабатываются
результат
1. иногда OnLoad получить ответ на второй DIV в обоих результатов DIV.
2. IE передает только один запрос на сервер (я использую скрипач, чтобы видеть, какие запросы отправляются на сервер).
Может ли кто-нибудь объяснить мне, что не так с кодом? Насколько я знаю, XDR не поддерживает синхронные вызовы, а асинхронные вызовы дают мне неправильные результаты. Любой метод обхода проблемы. .