ASP.NET - как сделать AJAX-запрос к серверу, не получая ответ с информацией для всех панелей обновления, которые у меня есть? - PullRequest
2 голосов
/ 13 января 2010

Например, у меня есть три UpdatePanels на странице. Я нажимаю кнопку и получаю довольно длинный ответ, который содержит все данные для трех UpdatePanels, строку представления состояния.

Я хочу оптимизировать свой запрос и получить ответ типа "ок" или "не ок". Как я могу это сделать?

1 Ответ

3 голосов
/ 13 января 2010

Короткий ответ таков: с MS Ajax и особенно с UpdatePanels вы не можете.

Длинный ответ:

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

Вы можете значительно сократить объем данных, отключив ViewState для элементов управления, которые в этом не нуждаются. Другой совет - установить для свойства UpdateMode ваших панелей значение "Conditional", чтобы не все панели обновления на странице были включены в каждое сообщение. Если вы публикуете сообщения с одной панели, а ответ просто обновляет эту панель, нет необходимости передавать данные об элементах управления на другие панели.

Прочтите здесь, чтобы получить советы и рекомендации по панели обновления , чтобы добиться от них максимальной производительности.

Если вы действительно хотите делать простые сообщения со своими сообщениями, я бы посмотрел на использование jQuery и его методов ajax / post для публикации на альтернативных страницах или веб-сервисах. MS Ajax спроектирован на основе архитектуры постбэка, поэтому, несмотря на то, что он очень удобен, его легко избежать.

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