Речь идет конкретно о RequestBuilder от GWT, но должна применяться и к обычному XHR. Моя компания заставляет меня создавать чат-приложение практически в реальном времени по HTTP. Да, я понимаю, что есть лучшие способы делать чаты, но это то, что они хотят. В конце концов мы хотим, чтобы он работал и на iPad / iPhone, чтобы не было флэш-памяти, что исключает веб-сокеты и комету, я думаю?
В любом случае, я сталкиваюсь с проблемами, если я установил тайм-аут GBT RequestBuilder на 10 секунд, и мы получаем очень случайные и случайные таймауты. У нас есть обработка ошибок и отправка по электронной почте на стороне сервера, и мы никогда не получаем никаких ошибок, что говорит о том, что основной запрос XHR, на котором построен RequestBuilder, никогда не попадает на сервер и время ожидания истекает через 10 секунд.
Мы используем этот запрос, чтобы довольно часто опрашивать сервер на наличие новых сообщений, а также отправлять новые сообщения на сервер, а также опрашивать (реже) другие части приложения. Чего я боюсь, так это того, что мы ограничиваем количество одновременных подключений к одному домену в браузерах (по умолчанию 2 для IE?).
Теперь мой вопрос: если я создаю RequestBuilder и вызываю его метод send () и браузер блокирует его отправку до тех пор, пока одно из 2 подключений на домен не освободится, тайм-аут все еще начинается, пока запрос блокируется или он не запустится, пока браузер не выпустит базовый XHR?
Надеюсь, это понятно, если нет, пожалуйста, дайте мне знать, и я постараюсь объяснить больше.