Frage

Ich habe eine aspx Seite, auf die ich XDomainRequest Objekt bin mit zwei div (s) zum Auffüllen mit html von AJAX-Antwort zurückgegeben.
Ich habe Jquery verwendet, um die divs zu erhalten und ausführen „each ()“ auf der abgerufenen Liste

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 .');
    }
}

Nun, was passiert ist, ich habe zwei Divs auf einer Seite, die unterschiedlichen IDs haben und wenn dieser Code ausgeführt wird auf „$ .ready (function () {})“ werden beide Anfragen asynchron an den Server gesendet und verarbeitet

Das Ergebnis ist
 1. manchmal die ONLOAD die Antwort für die zweite div in beiden div Ergebnisse.
 2. IE sents nur eine Anforderung an den Server (Ich verwende Fiedler, um zu sehen, welche Anforderungen an den Server gesendet werden).

Kann jemand Führer mich, was ist falsch mit dem Code? Soweit ich weiß, XDR nicht synchrone Anrufe nicht unterstützt, und asynchrone Aufrufe mich nicht falsch Ergebnisse geben. Jede Abhilfe / Tipp für dieses Problem.

War es hilfreich?

Lösung

Ausgabe von mir gelöst, wenn ich einen Fehler in meinem Code darauf hingewiesen :(.

xdr = new XDomainRequest(); 

sollte

var xdr = new XDomainRequest(); 

Für Punkt 2, habe ich "Cache-Control: no-cache". Header in meiner Antwort und es löste das Thema

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top