Вопрос

Я опытный веб-разработчик в нескольких различных стеках веб-технологий.В настоящее время я работаю в .Net, и мне стало любопытно узнать о частичной обратной передаче.

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

Я понимаю HTTP-запросы и асинхронные запросы, но что меня беспокоит в частичной обратной передаче, так это то, что, похоже, это и то, и другое.

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

Итак, может ли кто-нибудь пролить некоторый свет на то, как Microsoft реализовала частичную обратную передачу на уровне HTTP-запроса?

Это было полезно?

Решение

От Как написать свой собственный частичный постбэк в ASP.NET 2.0:

В основе частичной конструкции post back лежит XMLHttpRequest, DOM API.Его можно использовать внутри языка сценариев веб-браузера, такого как JavaScript, для отправки HTTP-запроса непосредственно на веб-сервер без необходимости перезагрузки всей страницы и повторной обработки ответа с сервера на языке сценариев.Эти данные в форме XML затем могут быть использованы для управления элементами страницы на стороне клиента.

При нажатии кнопки на странице ASPX выполняется HTTP-запрос на стороне клиента с использованием API XMLHttpRequest.Этот запрос обрабатывается HttpHandler на веб-сервере.HttpHandler получает запрос, обрабатывает его и отправляет ответ объекту XMLHttp на странице ASPX.Объект XMLHttp, в свою очередь, принимает ответ и отображает соответствующие изменения пользовательского интерфейса без необходимости полного обновления страницы браузером.

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

Другие советы

Я знаю, что на этот вопрос уже был дан ответ, но я не согласен с этим ответом...

По моему скромному мнению, термин "частичная обратная передача" неправильно используется в вышеупомянутой статье "Как написать свой собственный частичный постбэк в ASP.NET 2.0".В этой статье автор показывает вам, как выполнить AJAX-вызов HttpHandler. Это совсем другой процесс, чем выполнение вызовов PartialPostback в ASP.NET.

Я полагаю, что это "различие" ускользает от внимания в (приведенных выше ответах) после обдумывания комментария, в котором говорится:

"Панель обновления не только обновляет элементы управления, которые она содержит, она также обновляет значение ViewState значением, полученным с сервера после обработки."

Хотя этот заключительный комментарий несколько неуловимо иллюстрирует определение "Частичной обратной передачи" с использованием ASP.NET UpdatePanel...it не объясняет, что такое частичная обратная передача (что, опять же, сильно отличается от процесса обычного вызова AJAX).

Чтобы уточнить...


MICROSOFT ASP.NET AJAX с использованием updatepanel's:
На базовом уровне Microsoft AJAX поддерживает асинхронные запросы через частичную обратную передачу страницы.Частичная обратная передача выполняется в том же жизненном цикле страницы, что и синхронная обратная передача всей страницы, но обновляются только определенные области или элементы управления на странице - таким образом достигается частичный рендеринг страницы.MICROSOFT ASP.NET AJAX зависит от шаблона перехватчика для генерации и обработки частичной обратной передачи.После инициализации MICROSOFT ASP.NET Библиотеки JavaScript AJAX добавляют набор обработчиков событий клиента для перехвата вызовов, которые обычно инициируют обратную передачу всей страницы.Функции обработчика перехватывают обратные вызовы от зарегистрированных элементов управления, генерируют частичную обратную передачу, обрабатывают содержимое ответа, а затем асинхронно обновляют содержимое страницы. Поскольку MICROSOFT ASP.NET AJAX построен на существующей ASP.NET архитектуре обратной передачи, он использует проверку событий и поддерживает состояние просмотра на протяжении всего процесса частичной обратной передачи.Ваш стандартный "обычный" вызов AJAX не делает этих вещей!

Короче говоря, это так...

MICROSOFT ASP.NET AJAX использует "обычный" AJAX для 'аякс-ify"это страницы и достижение частичных обновлений...и при этом он обменивается данными и управляет состоянием просмотра НЕСКОЛЬКО раз в течение одного вызова. Вот ПОЧЕМУ это называется "частичной обратной отправкой".Впоследствии, именно поэтому они изначально описали панель обновления как средство для создания ваших страниц 'аджакси' (потому что это не то же самое, что использовать AJAX).


ОБЫЧНЫЕ вызовы AJAX:
Асинхронные запросы, инициированные с помощью JavaScript в браузере, создают новое соединение с сервером.ДА...это может включать обратную отправку на страницу с сохранением состояния, но также запросы без сохранения состояния к ресурсам, отличным от текущей страницы. Однако в случае асинхронной обратной передачи в запрос передается только та информация, которая должна быть обработана текущей страницей на сервере (и вы можете этим управлять). Это означает, что не нужно отправлять содержимое всей страницы, не нужно управлять состоянием просмотра и можно обойти (собственные) накладные расходы, встроенные в жизненный цикл страницы.Между тем, асинхронная обратная передача вызывает только серверные события, связанные с обработкой ТЕКУЩЕГО ЗАПРОСА. Вот почему обычный AJAX намного быстрее, чем ЧАСТИЧНАЯ ОБРАТНАЯ ПЕРЕДАЧА!

Эти моменты иллюстрируют...

Не только ЧТО такое "частичная обратная передача" ... но и В чем разница между "частичной обратной передачей" и вызовом "ajax".Вот почему это лучший ответ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top