Що таке постбек?


142

Я пробиваюся до веб-розробки і бачу, як слово postback кидається навколо. Виходячи з немережевого фону, то , що робить новий веб - розробник повинен знати про постбека? (тобто що вони бувають і коли вони виникають?)

Будемо дуже вдячні за будь-яку додаткову інформацію, яку ви хочете поділитися, щоб допомогти новачкові у веб-світі знати про поштові розсилки.

Відповіді:


178

Далі націлено на початківців ASP.Net ...

Коли це відбувається?

Повідомлення про зворотній зв’язок походить із клієнтського браузера. Зазвичай одним із елементів керування на сторінці користувач керує (натиснута кнопка або змінено спадне місце тощо), і цей елемент керує поштовим зворотом. Стан цього елемента керування, а також усі інші елементи керування на сторінці (відомі як Стан перегляду) надсилається назад на веб-сервер.

Що станеться?

Найчастіше поштовий зворотний зв’язок змушує веб-сервер створити екземпляр коду за класом сторінки, що ініціювала післягарантійне повідомлення. Потім цей об’єкт сторінки виконується протягом звичайного життєвого циклу сторінки з невеликою різницею (див. Нижче). Якщо ви не перенаправляєте користувача спеціально на іншу сторінку десь протягом життєвого циклу сторінки, кінцевим результатом післягарантного зворотного зв’язку буде знову та сама сторінка, яка відображатиметься користувачеві, і тоді може статися інша поштова розсилка тощо.

Чому це відбувається?

Веб-додаток працює на веб-сервері. Щоб обробити відповідь користувача, викликати зміну стану програми або перехід на іншу сторінку, вам потрібно отримати якийсь код, який потрібно виконати на веб-сервері. Єдиний спосіб досягти цього - зібрати всю інформацію, над якою користувач працює зараз, і відправити всю її назад на сервер.

Деякі речі, які слід відзначити початківцю, це ...

  • Стан елементів управління на задній сторінці опублікування доступний у контексті. Це дозволить вам маніпулювати елементами керування сторінками або перенаправляти на іншу сторінку на основі відомостей, що містяться там.
  • Елементи керування у веб-формі мають події, а тому обробники подій, як і будь-які інші елементи управління. Ініціалізаційна частина життєвого циклу сторінки буде виконана перед обробником події управління, яке спричинило публікацію назад. Тому код у обробнику подій Init and Load на сторінці буде виконуватися перед кодом у обробнику подій для кнопки, яку користувач натиснув.
  • Значення властивості “Page.IsPostBack” буде встановлено на “істинне”, коли сторінка виконується після поштового зворотного зв’язку, і “помилкове” ​​в іншому випадку.
  • Такі технології, як Ajax та MVC, змінили спосіб роботи поштових розсилок.

2
Невелика корекція - "Стан цього елемента керування, а також усі інші елементи керування на сторінці (відомі як Стан перегляду)" Опубліковано назад "." Це фактично дані Postback. Дані Viewstate також розміщуються назад, але це стан елементів керування в останній раз, коли вони були на сервері.
Simon Keep

Зауважте, зворотний зв'язок використовується на всіх платформах .NET, не тільки ASP.NET
JNF

1
"Щоб обробити відповідь користувача, викликати зміну стану програми або перехід на іншу сторінку, вам потрібно отримати якийсь код, який потрібно виконати на веб-сервері." Це трохи вводить в оману. Для цього вам не завжди потрібен "код для виконання на веб-сервері". Коли це можливо, можна краще обробити введення користувача на клієнті. Однією з найважливіших речей, яку потрібно знати про пост-спинки, є те, як / коли їх не робити; тобто коли потрібно піклуватися про речі на стороні клієнта, або через Ajax тощо.
Hawkeye Parker

1
Погодьтесь @HawkeyeParker. Я написав це ще тоді, коли знав лише архітектуру Web Forms. З тих пір речі, безумовно, пройшли довгий шлях! Все моє пояснення, безумовно, зовсім не враховує Ajax.
Енді Макклугдж

27

З Вікіпедії :

Postback - це дія, яку здійснює інтерактивна веб-сторінка, коли вся сторінка та її вміст надсилаються серверу для обробки деякої інформації, а потім сервер розміщує ту саму сторінку назад у браузері.


@Galwegian: Ви не думаєте, що це станеться лише тоді, коли виникнуть деякі помилки перевірки, щоб представити ту саму сторінку, що і результат.
Ширгілл Фархан

21

Postback відбувається, коли веб-сторінка розміщує свої дані назад у тому самому сценарії / dll / будь-якому, що генерувало сторінку в першу чергу.

Приклад в C # (asp.net)

...

if (!IsPostback)
   // generate form
else
   process submitted data;

20

Розширюючи наведені визначення, найважливіше, що вам потрібно знати як веб-розробник, - це те, що НЕ ДЕРЖАВИ НЕ ЗБЕРІГАЄТЬСЯ між поштовими повідомленнями. Існують способи збереження стану, наприклад колекції Session або Viewstate в ASP.NET, але, як правило, пишіть програми, де ви можете відтворити свій стан під час кожного поштового зворотного зв'язку.

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


2
добре кажучи. нічого не зберігається, окрім сеансу та перегляду держави
Майлз

1
Чудова точка! Так, це, безумовно, здається чимось, що потрібно трохи обернути мозок, коли йдеться з домену програмування клієнта.
Скотт Саад

10

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

Цей розробник має особливе значення для розробників ASP.Net , оскільки саме основний механізм визначає велику кількість поведінки для сторінки, зокрема "обробку подій". Сторінки ASP.Net мають рівно одну серверну форму, яка майже завжди публікує себе назад, і ці списки публікацій запускають виконання на сервері чимось під назвою Page Lifecyclecycle.


6

Цей термін також використовується в розробці веб-додатків при взаємодії з API сторонніх веб-сервісів

Багато API вимагають як інтерактивної, так і неінтерактивної інтеграції. Зазвичай інтерактивна частина виконується за допомогою переадресації (сайт 1 перенаправляє користувача на сайт 2, куди він входить, і перенаправляється назад). Неінтерактивна частина виконується за допомогою 'postback' або HTTP POST від серверів сайту 2 до серверів сайту 1.


5

Коли сценарій генерує форму html, а дія цієї форми http POST повертається в ту саму форму.


4

Післязапис - це фактично, коли форма надсилається на ту саму сторінку або сценарій (.php .asp тощо), на який ви зараз переробляєте дані, а не надсилає вам нову сторінку.

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

Дивіться: http://en.wikipedia.org/wiki/Postback


3

Повідомлення назад - це все, що призводить до того, що сторінку з веб-браузера клієнта буде відсунуто назад на сервер.

Там багато інформації, шукайте в Google для поштових знижок.

У більшості випадків будь-який елемент керування ASP спричинятиме повернення публікації (натискання кнопки / посилання), але деякі - ні, якщо ви не скажете їм (прапорець / комбо)


3

Postback посилається на форми HTML. Форма HTML має 2 способи: GET та POST. Ці методи визначають, як дані надсилаються від клієнта через форму, на сервер. Postback - це дія POSTing назад на сторінку, що подає. По суті, він утворює повну схему від клієнта, до сервера і знову назад.


2

І все-таки відповідь точно вказано вище, але просто хочу поділитися своїми знаннями. Postback - це властивість, яку ми можемо використовувати, виконуючи деякі завдання, необхідні нам для управління станом сторінки, тобто ми запустили якусь подію, наприклад, натискання кнопки, або якщо ми оновили сторінку. Коли наша сторінка завантажується вперше, тобто якщо ми оновили свою сторінку, у цей час властивість postback є хибною, і після цього вона стає істинною.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.