Параллельные асинхронные обратные вызовы - PullRequest
6 голосов
/ 24 февраля 2010

Вопрос умирать усердно специалистам asp.net.Я потратил много времени, пытаясь найти ответ или сделать это сам, но пока не повезло.

Веб-приложение ASP.NET.Я планирую улучшить время загрузки страницы, чтобы улучшить взаимодействие с пользователем.Я хочу отложить загрузку разделов страницы с помощью UpdatePanels.Я могу сделать одно обновление UpdatePanel сразу после загрузки страницы, используя таймер с минимальным интервалом.Это работает просто отлично, но начинаются шаги при попытке сделать это с несколькими UpdatePanels.По сути, все панели обновляются, но не последовательно, а последовательно.

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

А теперь главный вопрос: кто-нибудь нашел способ обойти это?В ASP.NET, если это возможно.Это был бы ОЧЕНЬ ценный ответ, вероятно, не только для меня.

Спасибо, спасибо, спасибо (за рабочий ответ: -)

1 Ответ

5 голосов
/ 24 февраля 2010

UpdatePanels являются синхронными по дизайну.

Если вы хотите выполнить несколько запросов одновременно, вам нужно использовать методы страницы, службы AJAX или необработанный AJAX. В любом случае означает отказ от ViewState.

Если вы хотите одновременно отображать элементы управления ASP.Net для нескольких запросов AJAX, вы можете создавать небольшие независимые файлы ASPX, содержащие элементы управления, отправлять запросы AJAX и вставлять отображаемый HTML-код в DOM. В jQuery вы бы сделали это так: $('selector').load('something.aspx'). Обратите внимание, что ни обратные передачи, ни viewstate не будут работать.

...