Один объект XMLHTTPRequest для выполнения нескольких запросов - PullRequest
2 голосов
/ 02 апреля 2009

Кто-нибудь знает, есть ли способ использовать один объект XMLHTTPRequest для отправки нескольких асинхронных запросов. Я могу сделать это с помощью одного запроса и получить ответ от моего обработчика onreadystatechange ().

Мне интересно, есть ли способ использовать один и тот же объект для отправки нескольких параллельных запросов, но я не вижу способа сопоставить ответ на запрос из функции onreadystatechange ().

Ответы [ 3 ]

10 голосов
/ 02 апреля 2009

Краткий ответ: Вы не можете.

Вопрос, который вам действительно нужно задать себе: зачем вам это нужно для нескольких объектов XMLHTTPRequest? Вряд ли есть недостаток в создании десятка или около того объектов.

1 голос
/ 02 апреля 2009

+ 1 к ответу Мартина, но я хотел бы добавить, что просвещение, которое вы пропускаете, состоит в том, что Запрос является по определению одноразовым объектом.

0 голосов
/ 26 июля 2009

Вы можете повторно использовать объект после завершения первого запроса, чтобы выполнить второй запрос, и изменить onreadystatechange на другую функцию.

Не параллельно, но очень быстро.

Внимание! IE не может повторно использовать объекты XMLHTTPRequest даже в собственном XMLHTTP, реализованном в IE7 и IE8.

Для параллельных запросов создайте несколько объектов XMLHTTPRequest и распределите между ними ваши вызовы.

Еще одно предостережение: при параллельном создании нескольких объектов браузеры могут ограничивать использование параллельных объектов XMLHTTPRequest. Часто в очень плохой форме, теряя запросы или прозрачно отказываясь отправлять их, поэтому вам нужно тщательно это проверить.

Самый безопасный способ сделать что-либо - это создать один запрос, использовать его, затем избавиться от него и создать новый. Один за раз.

...