2009-04-01 19 views
2

Wer weiß zu machen, wenn es eine Möglichkeit ist, ein einzelnes XMLHttpRequest-Objekt zu verwenden, um mehrere asynchrone Anfragen zu senden. Ich kann es mit einer einzigen Anfrage machen und bekomme eine Antwort von meinem onreadystatechange() - Handler zurück.Einzel XMLHttpRequest-Objekt mehrere Anfragen

Ich frage mich, ob es eine Möglichkeit gibt, das gleiche Objekt zu verwenden, um mehrere parallele Anfragen zu senden, aber ich sehe keine Möglichkeit, eine Antwort auf eine Anfrage von der onreadystatechange() -Funktion zu entsprechen.

+0

Was ist los mit den Tags, "C++ ie7 msxml"? Entschuldigen Sie mich? Oder ist es nur ich ... :-) –

+0

Nun, ich programmiere in C++, das XMLHTTPRequest-Objekt ist in der msdn-Website als eine Funktion von IE7 aufgeführt. Es scheint Teil der msxml-Bibliothek zu sein, wie auch von der msdn-Site dokumentiert. –

+0

Was ist der Sinn der Verwendung von xmlhttprequest für C++ - Programmierung. Sollten Sie nicht direkt Wininet oder Sockets verwenden? –

Antwort

10

Kurze Antwort: Sie können nicht.

Frage Sie wirklich brauchen, um sich zu fragen, warum Sie, dass über mehrere XMLHTTPRequest Objekte wollen würde? Es gibt kaum einen Nachteil, um etwa ein Dutzend Objekte zu inszenieren.

+0

Ich stimme zu. Ich denke, dass ich die xmlhttpRequest-Abstraktion missverstehen kann. Mir wurde gesagt, dass ich beide einen Rahmen haben muss, in dem mehrere http-Anfragen im Flug sein können, aber dass ich auch einen bestimmten xmlhttprequest herum behalten muss, weil ich ihn benutzt habe, um mich auf einer Webseite zu authentifizieren. –

+0

Mehrere nachfolgende Anforderungen können mit einem einzigen XMLHTTPRequest-Objekt erstellt werden. Obwohl es viel zuverlässiger ist, ein neues zu erstellen. – davenpcj

+0

Wahr, aber die Frage erwähnt ausdrücklich parallele Anfragen und somit meine offene Antwort :) –

1

+1 zu Martijns Antwort, aber ich wollte hinzufügen, dass die Erleuchtung, die Sie vermissen, ist, dass eine Anfrage per Definition ein einmaliges Objekt ist.

0

können Sie das Objekt wiederverwendet werden, nachdem die erste Anforderung eine zweite Anforderung zur Ausgabe abgeschlossen ist, und onreadystatechange auf eine andere Funktion ändern.

Nicht parallel, aber sehr schnell.

Ein Wort der Warnung, IE kann nicht XMLHTTPRequest Objekte, auch in der nativen XMLHTTP implementiert in IE7 und IE8 wiederzuverwenden.

Erstellen Sie für parallele Anforderungen mehrere XMLHTTPRequest-Objekte, und verteilen Sie Ihre Aufrufe auf diese.

Noch ein Hinweis zur Vorsicht, wenn mehrere Objekte gleichzeitig erstellen, können Browser Ihre Nutzung der gleichzeitigen XMLHTTPRequest Objekte begrenzen. Oft auf sehr schlechte Weise, indem Sie Anfragen verlieren oder sich transparent weigern, sie zu senden, also sollten Sie das sorgfältig testen.

Der sicherste Weg, Dinge zu tun, ist eine Anfrage zu erstellen, verwenden Sie es, dann entsorgen und eine neue erstellen. Eins nach dem anderen.