2009-04-01 4 views
2

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

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

+0

Что происходит с тегами, "C++ ie7 msxml"? Извините? Или это просто я ... :-) –

+0

Ну, я программирую на C++, объект XMLHTTPRequest указан на веб-сайте msdn как функция IE7. Он, кажется, является частью библиотеки msxml, также документированной сайтом msdn. –

+0

Какой смысл использовать xmlhttprequest для программирования на C++. Разве вы не должны использовать прямую wininet или сокеты? –

ответ

10

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

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

+0

Согласен. Я думаю, что я могу не понимать абстракцию xmlhttpRequest. Мне сказали, что мне нужно иметь фреймворк, в котором могут находиться несколько запросов HTTP, но мне также нужно поддерживать определенный xmlhttprequest, потому что я использовал его для аутентификации на веб-сайте. –

+0

Несколько последующих запросов могут быть сделаны с помощью одного объекта XMLHTTPRequest. Хотя на самом деле гораздо надежнее создать новый. – davenpcj

+0

Правда, но вопрос конкретно упоминает параллельные запросы и, таким образом, мой откровенный ответ :) –

1

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

0

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

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

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

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

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

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