Опрос против обратных вызовов AsyncCallback - лучший подход для медленного веб-сервиса? - PullRequest
7 голосов
/ 19 июля 2010

У меня есть веб-страница, использующая AJAX для получения результатов поиска по странице. На стороне сервера я запрашиваю очень медленный веб-сервис - от 20 секунд до 2 минут.

Насколько я понимаю, мои варианты - либо опрос, либо длительный запрос.

AsyncCallback кажется идеальным, поскольку результат будет возвращен, как только веб-служба ответит, и поток не будет заблокирован на стороне сервера.

Есть ли лучший подход к этому? Знаете ли вы о каких-либо проблемах с длительными HTTP-запросами в jQuery?

Обновление: да, я буду кэшировать ответ от веб-службы, когда это возможно. У меня нет контроля над внешним веб-сервисом, к которому я обращаюсь.

Ответы [ 2 ]

2 голосов
/ 19 июля 2010

Мы используем AsyncCallbacks для опроса сервера, который обычно отвечает за 4:30 - 5 минут, и система работает нормально.

Стоит отметить, что вы не получите никаких преимуществ (производительность, время ответаи т. д.) за исключением того факта, что пул рабочих потоков IIS не будет исчерпан, если вы получите слишком много запросов: т.е.Если мы получаем 2 запроса в минуту, у нас обычно будет 10-12 ожидающих запросов. В этом случае AsyncCallback не будет иметь никакого значения.Если мы получаем 100 запросов в минуту, это означает 500-600 ожидающих соединений, поэтому Async является обязательным.Речь идет только об управлении пулом потоков.

1 голос
/ 19 июля 2010

Существует только одна проблема с этим подходом при переходе пользователя на другую страницу. Вы можете кэшировать результаты где-нибудь, чтобы не обращаться к веб-службе постоянно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...