2010-02-24 6 views
6

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

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

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

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

Спасибо, спасибо, спасибо (для работы ответа :-)

ответ

5

UpdatePanels синхронно конструкцией.

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

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

+0

Это, вероятно, лучший ответ, который я могу получить. Немного грустно узнать об этом и жалею, что это явно не указано в help/docs. Более того, тип запуска AsyncPostBackTrigger предполагает, что UpdatePanel поддерживает асинхронные операции. Я не хочу разбивать страницу на кучу субстраниц - решение не стоит хлопот. Но как я могу использовать методы страниц для этого? –

+0

Что ты спрашиваешь? – SLaks

+0

Методы страницы - это не то, что я здесь. Вероятно, JavaScript будет моим ответом. Благодарю. –

Смежные вопросы