Різниця між Postback і Backback


116

Я продовжую чути ці слова " зворотний дзвінок " і " післязавдання ", що їх метують.
Яка різниця між двома?

Чи поштове зворотнє зв'язок дуже специфічний для сторінок ASP.NET?

Відповіді:


204

Postback відбувається, коли дані (ціла сторінка) на цій сторінці розміщуються від клієнта до сервера. Тобто дані надсилаються на сервер , і, отже, сторінка оновлюється (перемальовується) ... подумайте про це як ' надсилання серверу всієї сторінки (asp.net), повної даних ".

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

При Asp.Net ViewState не оновлюється, коли викликається зворотний виклик , на відміну від зворотного зв'язку.

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

Якщо ви використовуєте FireBug (для Firefox), ви дійсно можете бачити зворотні дзвінки, які викликаються на сервері в Console. Таким чином, ви побачите, які конкретні дані надсилаються на сервер ( Request), а також дані, які сервер вам надіслав назад ( Response).


На зображенні нижче показано життєві цикли сторінки як після зворотного зв'язку, так і зворотного дзвінка на веб-сайті, заснованому на ASP.NET:

Життєві цикли сторінки ASP.NET
(джерело: esri.com )


18
Насправді зворотний виклик - це більш загальний термін програмування функції, яку потрібно виконати після завершення іншої функції.
Райан Догерті

1
Коли вказівник на функцію буде переведений на іншу функцію, він пізніше викликатиме
Андреас Греч


18

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

Зворотний виклик, який зазвичай використовується в AJAX, виникає, коли запит надсилається від клієнта на сервер, для якого сторінка не оновлюється, лише частина її оновлюється без мерехтіння, що виникає в браузері.


5

Я згоден з відповіддю Дреаса, але хотів би додати пару пунктів. Postback - це термін, який був запроваджений зовсім недавно програмуванням ASP .NET. Насправді я вперше почув про зворотний виклик ще в ті часи, коли я почав програмувати на C (можливо, термін існував до цього, я не знаю), і це просто означає вказівник на функціонування, а цей покажчик на функцію (назвіть це A) переходить до іншої функції (назвіть цю B), яка пізніше викликатиме А. Зворотний виклик також останнім часом використовується Yahoo UI Connection Manager та іншими структурами Ajax, але я вважаю, що цей термін вперше використовувався ще за старих днів C.


4

Багато цієї дискусії - мова ASP.NET gobbledygook ....

Відповідь ТАК. Postback - це "термін", характерний для ASP.NET Microsoft. Але пам’ятайте, що такі постачальники, як 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 швидше і простіше. Ось що таке справжній POSTBACK. Браузер, природно, надсилає серверу необхідний заголовок POST HTTP, щоб зробити це, але кешує HTML на іншій частині сторінки, так що він робить блискавку самостійно.

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

Ось що бентежить людей ...... ці реалізації самих основних HTTP-запитів і трюків Javascripted отримують багатошарову мову, яка не зрозуміла. Тоді люди змушують створювати жахливі веб-програми, які роблять все це непотрібне, що вирішить дуже просте кодування.

Я все ще користуюся і рекомендую ASP.NET. Пройшов довгий шлях і чудова система. Але це допоможе, якби більшість людей зрозуміли основи того, що вони роблять, перш ніж використовувати їх, оскільки ці рамки можна налаштувати та спростити трохи, щоб покращити їх, якщо ви побачите, що насправді відбувається під кришкою.


0

Відтворення після відтворення відбувається, коли запит надсилається серверу, не потрібно вказувати інформацію про безпеку кожного запиту.

Коли ви робите запит на зворотній дзвінок на іншу сторінку, використовується сервер


0

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

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