Что такое постбэк?

142

Я пробираюсь в веб-разработку и видел слово « обратная связь» . Исходя из не веб-опыта, что должен знать новый веб-разработчик о постбэках? (то есть, что они и когда они возникают?)

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

Скотт Саад
источник

Ответы:

178

Следующее предназначено для начинающих ASP.Net ...

Когда это происходит?

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

Что случается?

Чаще всего обратная передача заставляет веб-сервер создать экземпляр кода за классом страницы, которая инициировала обратную передачу. Этот объект страницы затем выполняется в обычном жизненном цикле страницы с небольшой разницей (см. Ниже). Если вы не перенаправите пользователя специально на другую страницу где-то в течение жизненного цикла страницы, конечным результатом обратной передачи будет та же самая страница, отображаемая пользователю снова, и затем может произойти другая обратная передача, и так далее.

Почему это происходит?

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

Некоторые вещи для начинающих, чтобы отметить ...

  • Состояние элементов управления на странице отправки сообщений доступно в контексте. Это позволит вам манипулировать элементами управления страницей или перенаправлять их на другую страницу, основываясь на имеющейся там информации.
  • Элементы управления в веб-форме имеют события и, следовательно, обработчики событий, как и любые другие элементы управления. Часть инициализации жизненного цикла страницы будет выполняться перед обработчиком событий элемента управления, вызвавшего повторную публикацию. Поэтому код в обработчике событий Init и Load страницы будет выполняться перед кодом в обработчике событий для кнопки, на которую нажал пользователь.
  • Значение свойства «Page.IsPostBack» будет установлено в «true», когда страница выполняется после обратной передачи, и «false» в противном случае.
  • Такие технологии, как Ajax и MVC, изменили способ работы постбэков.
Энди МакКлагжаг
источник
2
Небольшое исправление: «Состояние этого элемента управления, а также всех других элементов управления на странице (известное как« Состояние просмотра ») опубликовано обратно». Эти данные на самом деле являются данными обратной передачи. Данные ViewState также отправляются обратно, но это состояние элементов управления в последний раз, когда они были на сервере.
Саймон
Примечание обратная передача используется на всех платформах .NET, а не только на ASP.NET
JNF
1
«Чтобы обработать ответ пользователя, изменить состояние приложения или перейти на другую страницу, вам необходимо получить некоторый код для выполнения на веб-сервере». Это немного вводит в заблуждение. Вам не всегда нужен «код для выполнения на веб-сервере», чтобы делать эти вещи. По возможности лучше обрабатывать пользовательский ввод на клиенте. Одна из самых важных вещей, которые нужно знать о постбеках, это как / когда не делать их; то есть когда заботиться о вещах на стороне клиента, или через Ajax и т. д.
Hawkeye Parker
1
Согласитесь @HawkeyeParker. Я написал это, когда все, что я знал, это архитектура веб-форм. С тех пор дела, безусловно, прошли долгий путь! Все мои объяснения определенно не принимают Ajax и не учитывают его вообще.
Энди МакКлагжаг
27

Из википедии :

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

Galwegian
источник
@Galwegian: Не думаете ли вы, что это произойдет только тогда, когда произойдут некоторые ошибки проверки, чтобы представить ту же страницу, что и результат.
Ширгилл Фархан
21

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

Пример в C # (asp.net)

...

if (!IsPostback)
   // generate form
else
   process submitted data;
Крис Кадмор
источник
20

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

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

RB.
источник
2
хорошо сказано. ничего не сохраняется, кроме как в сеансе и viewstate
Miles
1
Отличный момент! Да, это определенно похоже на то, что нужно немного, чтобы обернуть мозг, когда он выходит из области программирования клиента.
Скотт Саад
10

Веб-разработка обычно включает в себя HTML-страницы, которые содержат формы ( <form>теги). Формы публикуются по URL. Вы можете установить данную форму для публикации на любой URL, который вы хотите. Постбэк это когда форма сообщения назад к ее странице / URL.

Этот термин имеет особое значение для разработчиков ASP.Net , потому что он является основным механизмом, который управляет поведением страницы, особенно «обработкой событий». Страницы ASP.Net имеют ровно одну серверную форму, которая почти всегда отправляет обратно самому себе, и эти резервные копии запускают выполнение на сервере того, что называется жизненным циклом страницы.

Джоэл Коухорн
источник
6

Этот термин также используется при разработке веб-приложений при взаимодействии с API сторонних веб-сервисов.

Многие API требуют как интерактивной, так и неинтерактивной интеграции. Обычно интерактивная часть выполняется с помощью перенаправлений (сайт 1 перенаправляет пользователя на сайт 2, где он выполняет вход и перенаправляется обратно). Неинтерактивная часть выполняется с помощью «обратной передачи» или HTTP POST с серверов сайта 2 на серверы сайта 1.

Hemant
источник
5

Когда скрипт генерирует HTML-форму и действие этой формы отправляет http обратно в ту же форму.

mspmsp
источник
4

Обратная передача - это, по сути, когда форма отправляется на ту же страницу или сценарий (.php .asp и т. Д.), В котором вы в данный момент обрабатываете данные, а не отправляет вас на новую страницу.

Примером может служить страница на форуме (viewpage.php), где вы отправляете комментарий, и он отправляется на ту же страницу (viewpage.php), и вы затем увидите его с добавленным новым контентом.

Смотрите: http://en.wikipedia.org/wiki/Postback

Morphio
источник
3

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

Там много информации, поиск в Google для постбэков.

В большинстве случаев любой элемент управления ASP будет вызывать обратную запись (нажатие кнопки / ссылки), но некоторые этого не делают, если вы не скажете им (флажок / выпадающий список)

миль
источник
3

Обратная передача относится к формам HTML. Форма HTML имеет 2 метода: GET и POST. Эти методы определяют, как данные отправляются с клиента через форму на сервер. Обратная передача - это действие отправки сообщения обратно на страницу отправки. По сути, он образует полный канал от клиента до сервера и обратно.

steve_c
источник
2

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

if(!ispostback)
{
 // do some task here
}
else
{
 //do another task here
}

http://happycodng.blogspot.in/2013/09/concept-of-postback-in.html

user3114934
источник