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

Я продолжаю слышать эти слова " callback" и " postback". В чем разница между двумя?

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

Ответ 1

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

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

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

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

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


Ниже показано изображение жизненных циклов страницы как обратной передачи, так и обратного вызова на веб-сайте на основе ASP.NET:

Циклы жизни страницы ASP.NET http://edndoc.esri.com/arcobjects/9.2/NET_Server_Doc/developer/ADF/graphics%5Cpage_lifecycle.png

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

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

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

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

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

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

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

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

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

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

Ответ 5

A postback - это запрос, отправленный с клиента на сервер с той же страницы, пользователь уже работает с. "

ASP.NET был представлен с механизмом отправки HTTP POST-запроса обратно на ту же страницу. Он в основном отправляет полную страницу обратно на сервер (т.е. Отправляет все свои данные) на той же странице. Итак, вся страница обновлена.

Чтобы понять, как работает механизм обратной передачи в ASP.NET, выполните следующие действия:

1. Добавить новую страницу веб-формы ASP.NET в проект, например WebForm1.aspx.

2. Просмотрите код страницы в представлении источника HTML. Вы найдете что-то вроде следующего экрана: Посмотрите на строку формы кода.

<form id="form1" runat="server">

Он представляет собой реализацию управления формой на стороне сервера.

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

<form method="post" action="WebForm1.aspx" id="form1">

Вы можете видеть, что элемент формы HTML, сгенерированный с помощью HTTP-метода, как "POST" и action = "WebForm1.aspx". Итак, если нажата кнопка отправки, страница будет по умолчанию возвращаться к ней.

A callback обычно является вызовом для выполнения функции после завершения другой функции. "

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

Ответ 6

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

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

Ответ 7

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