Разница между обратным и обратным вызовом

Я продолжаю слышать эти слова « обратный вызов » и « постбэк » брошены вокруг.
В чем разница между двумя?

Является ли обратная передача очень специфичной для страниц ASP.NET?

13.12.2008 11:02:24
6 ОТВЕТОВ
РЕШЕНИЕ

Обратная передача происходит, когда данные (вся страница) на странице публикуются от клиента к серверу. Т.е. данные отправляются обратно на сервер , и, таким образом, страница обновляется (перерисовывается) ... подумайте об этом как « отправка на сервер всей страницы (asp.net), полной данных ».

С другой стороны, обратный вызов также является особым типом обратной передачи , но это просто быстрая передача данных на сервер для получения небольшого набора данных (обычно), и, таким образом, страница не обновляется, в отличие от обратной передачи. ... воспринимайте это как « вызов сервера и получение некоторых данных обратно ».

В Asp.Net ViewState не обновляется при обратном вызове , в отличие от обратной передачи.

Причина того, что вся страница публикуется с помощью ASP.Net, заключается в том, что ASP.Net заключает всю страницу в метод<form> с использованием метода post , и поэтому при нажатии кнопки «Отправить» на странице форма отправляется на сервер со всеми поля, которые находятся в форме ... в основном вся страница.

Если вы используете FireBug (для Firefox), вы можете увидеть обратные вызовы, вызываемые на сервере в Console. Таким образом, вы увидите, какие конкретные данные отправляются на сервер ( Request), а также данные, которые сервер отправил вам обратно ( Response).


Изображение ниже иллюстрирует жизненные циклы страниц как обратных, так и обратных вызовов на веб-сайте на основе ASP.NET:

ASP.NET Page Жизненные циклы
(источник: esri.com )

203
23.02.2019 02:00:26
На самом деле, обратный вызов является более общим термином программирования для функции, которую необходимо выполнить после завершения другой функции.
Ryan Doherty 14.12.2008 07:12:08
Когда указатель на функцию передается другой функции, он впоследствии будет вызываться
Andreas Grech 14.12.2008 08:59:25
Andreas Grech 6.08.2016 11:12:06

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

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

18
13.12.2008 18:59:43

Я согласен с ответом Дриаса, но я хотел бы добавить пару моментов. Постбэк - это термин, который совсем недавно появился в ASP .NET-программировании, как объяснил Дриас, тогда как обратный вызов является более общим и использовался задолго до того, как появилась веб-разработка. Фактически, я впервые услышал об обратном вызове в те дни, когда начал программировать на C (возможно, этот термин существовал до этого, я не знаю), и это просто означает указатель на функцию и этот указатель на функцию (назовите это A) передается другой функции (назовите это B), которая позже будет вызывать A. Callback также недавно использовался в Yahoo UI Connection Manager и других Ajax-средах, но я полагаю, что термин впервые использовался в старые времена C.

5
14.12.2008 05:22:14

Обратная передача происходит, когда запрос отправляется на сервер, и нет необходимости сообщать подробности о безопасности для каждого запроса.

Когда вы делаете запрос на другую страницу обратного вызова используется сервером

0
6.07.2009 15:08:14

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

0
27.03.2012 02:35:46

Большая часть этого обсуждения - это болтовня языка ASP.NET ....

Ответ ДА. Обратная передача - это термин, характерный для Microsoft ASP.NET. Но помните, что поставщики, такие как Microsoft, оборачивают свои СОБСТВЕННЫЕ версии этих процессов вокруг своих собственных реализаций, что вводит нас в заблуждение относительно того, что ДЕЙСТВИТЕЛЬНО ПРОИСХОДИТ в мире Http / Html.

Их версия POSTBACK - это в основном традиционный HTTP-запрос POST, отправляемый обратно на исходный сервер. Но в ASP.NET они делают это, прикрепляя гигантский тег элемента FORM HTML (с атрибутом метода POST) вокруг всей веб-страницы, а не традиционные элементы управления формой в одной крошечной части веб-страницы. Они делают это, потому что они используют спецификацию HTTP для поддержания «состояния» своей страницы и ее элементов управления, а также для гарантии того, что вся страница, даже традиционная разметка поля неформ, возвращается без изменений.

К сожалению, это посылает ОГРОМНОЕ количество ненужных данных по проводам, так что их VIEWSTATE и его родственный POSTBACK на странице стали рассматриваться многими как трата пропускной способности и неаккуратный способ реализации состояния веб-страницы. Я могу показать вам, что большинство современных браузеров и веб-сайтов, если они разработаны с использованием кэшируемого CSS и согласованной разметки HTML, будут возвращать состояние страницы вполне естественно, используя собственный HTML-кеш браузера. т.е. полный POSTBACK часто не нужен.

CALLBACK - это просто JavaScript. Это просто цирковые трюки ECMASCRIPT, которые ASP.NET хранит в том, что они называют своим AJAX API, в гигантских библиотеках JavaScript, загружаемых вашим браузером с сервера, и которые разработчики ASP.NET бессознательно упаковывают в свои веб-страницы, чтобы инициировать изменения на веб-странице без полного POSTBACK. API ASP.NET для AJAX просто создает весь этот массивный Javascript, который находится на стороне клиента и который запускается в браузере, когда пользователь что-то меняет, что-то переворачивает или что-то щелкает в браузере, вызывая традиционные события DOM браузера JavaScript, которые затем отправляет гигантскую загрузку JSON или других данных обратно на сервер для обработки. Затем он возвращается и принимается библиотеками и объектами Javascipted в памяти браузера, а также изменяет части веб-страницы и разметки пользователя.

Говорят, что около 5-10% пользователей и браузеров отключили Javascript, так что все эти JSON и AJAX могли аварийно завершить работу и сгореть для этих людей. т.е. CALLBACK не будет работать.

Это то, что происходит за кулисами. Многое излишне, если вы спросите меня. И именно поэтому модели веб-контроля в ASP.NET подвергались критике в прошлом.

Если вы на секунду отказались от ASP.NET, вы могли бы самостоятельно написать простое поле FORM на веб-странице HTML с одним текстовым полем и кнопкой и нажать на него и посмотреть, как оно отправляется на сервер, точно так же, как на странице ASP.NET, но быстрее и проще. Вот что такое настоящий POSTBACK. Браузер, естественно, отправляет серверу необходимый HTTP-заголовок POST для этого, но кэширует HTML-код на остальной части страницы, поэтому сам по себе молниеносно.

Для CALLBACK вы можете просто добавить простой код Javascript / ECMAScript на ту же HTML-страницу, где, когда пользователь переворачивает какой-либо текст или кнопку, щелкает или изменяет поле формы, веб-страница не POST, но за кулисами вы Пусть Javascript отправит что-то на сервер. То, как вы справляетесь с этим через собственный JavaScript, JSON или библиотеки, - это другое дело. Но это не волшебство. Для людей, у которых не отключен Javascipt или Javascript, вы должны создавать страницы без CALLBACK и просто кэшировать любые изменения, которые возвращаются при нажатии на элементы управления поля формы или гиперссылки. Это одна из причин пересмотреть процедуры обратного вызова, хотя большинство современных пользовательских агентов теперь настроены для процедур веб-сайта с ECMAScripted.

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

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

4
28.01.2017 02:01:03