Perbedaan antara Postback dan Callback

116

Saya terus mendengar kata-kata ' callback ' dan ' postback ' ini diucapkan .
Apa perbedaan antara keduanya?

Apakah postback sangat spesifik untuk halaman ASP.NET?

Biswanath
sumber

Jawaban:

204

Postback terjadi ketika data (seluruh halaman) pada halaman diposting dari klien ke server..yaitu data diposting kembali ke server , dan dengan demikian halaman di-refresh (digambar ulang) ... pikirkanlah sebagai ' mengirim ke server seluruh halaman (asp.net) penuh data '.

Di sisi lain, callback juga merupakan jenis postback khusus , tetapi ini hanya perjalanan cepat ke server untuk mendapatkan sekumpulan kecil data (biasanya), dan dengan demikian halaman tidak di-refresh, tidak seperti postback. ... anggap saja sebagai ' memanggil server, dan menerima beberapa data kembali '.

Dengan Asp.Net, ViewState tidak disegarkan saat callback dipanggil , tidak seperti postback.

Alasan seluruh halaman diposting dengan ASP.Net adalah karena ASP.Net membungkus seluruh halaman <form>dengan metode posting , dan ketika tombol kirim diklik di halaman, formulir dikirim ke server dengan semua bidang yang ada di formulir ... pada dasarnya seluruh halaman itu sendiri.

Jika Anda menggunakan FireBug (untuk Firefox), Anda sebenarnya dapat melihat callback dipanggil ke server di file Console. Dengan begitu, Anda akan melihat data spesifik apa yang dikirim ke server ( Request) dan juga data yang dikirim kembali oleh server kepada Anda ( Response).


Gambar di bawah ini mengilustrasikan Siklus Hidup Halaman dari postback dan callback di Website berbasis ASP.NET:

Siklus Hidup Halaman ASP.NET
(sumber: esri.com )

Andreas Grech
sumber
18
Sebenarnya, callback adalah istilah pemrograman yang lebih umum untuk suatu fungsi yang perlu dijalankan setelah fungsi lain selesai.
Ryan Doherty
1
Saat penunjuk ke suatu fungsi diteruskan ke fungsi lain, yang kemudian akan dipanggil
Andreas Grech
18

Postback terjadi ketika permintaan dikirim dari klien ke server untuk halaman yang sama seperti yang sedang dilihat pengguna. Saat postback terjadi, seluruh halaman di-refresh dan Anda dapat melihat perkembangan umum pada bilah kemajuan di bagian bawah browser.

Callback, umumnya digunakan dengan AJAX, terjadi ketika permintaan dikirim dari klien ke server yang halamannya tidak di-refresh, hanya sebagian saja yang diperbarui tanpa terjadi kedipan pada browser

Sanket
sumber
5

Saya setuju dengan jawaban Dreas, tetapi saya ingin menambahkan beberapa poin. Postback adalah istilah yang diperkenalkan baru-baru ini oleh pemrograman ASP .NET seperti yang dijelaskan Dreas, sedangkan callback lebih umum dan telah digunakan jauh sebelum pengembangan web ada. Sebenarnya saya pertama kali mendengar tentang callback kembali pada hari-hari ketika saya memulai pemrograman di C (mungkin istilah itu ada sebelumnya, saya tidak tahu) dan itu hanya berarti penunjuk ke fungsi dan penunjuk ini ke fungsi (beri nama A ini) diteruskan ke fungsi lain (beri nama B ini) yang nantinya akan memanggil A. Callback juga baru-baru ini digunakan oleh Yahoo UI Connection Manager dan kerangka kerja Ajax lainnya, tetapi saya yakin istilah tersebut pertama kali digunakan di masa C yang lama.

Kevin Le - Khnle
sumber
4

Banyak diskusi ini adalah bahasa gobbledygook ASP.NET ....

Jawabannya iya. Postback adalah "istilah" khusus untuk ASP.NET Microsoft Tapi ingat, vendor seperti Microsoft membungkus versi mereka SENDIRI dari proses ini di sekitar implementasi mereka sendiri, membingungkan kita semua tentang apa yang BENAR-BENAR TERJADI di dunia Http / Html.

Versi POSTBACK mereka pada dasarnya adalah permintaan HTTP POST tradisional yang dikirim kembali ke server asal. Tapi di ASP.NET mereka melakukannya dengan menempelkan tag elemen HTML FORMULIR raksasa (dengan atribut metode POST) di seluruh halaman web daripada kontrol formulir tradisional di satu bagian kecil dari halaman web. Mereka melakukan ini karena menggunakan spesifikasi HTTP untuk mempertahankan "status" halaman mereka dan kontrolnya, dan untuk memastikan seluruh halaman, bahkan markup kolom non-formulir tradisional, kembali utuh.

Sayangnya, ini mengirimkan sejumlah besar data unnessary melalui kabel sehingga VIEWSTATE mereka dan saudaranya POSTBACK di halaman telah dilihat oleh banyak orang sebagai pemborosan bandwidth dan cara ceroboh dalam mengimplementasikan status halaman web. Saya dapat menunjukkan kepada Anda bahwa sebagian besar browser dan situs web modern, jika dirancang menggunakan CSS yang dapat disimpan di cache dan markup HTML yang konsisten, akan mengembalikan status halaman secara alami menggunakan cache HTML asli browser. misalnya, POSTBACK Penuh seringkali tidak diperlukan.

CALLBACK hanyalah JavaScript. Ini hanya trik sirkus ECMASCRIPT yang disimpan ASP.NET dalam apa yang mereka sebut API AJAX mereka di pustaka JavaScript raksasa yang diunduh browser Anda dari server, dan yang secara tidak sengaja dikemas oleh pengembang ASP.NET ke dalam halaman web mereka untuk memicu perubahan di halaman web tanpa POSTBACK penuh. API ASP.NET untuk AJAX hanya membuat semua Javascript masif yang ada di sisi klien dan yang dipicu di browser saat pengguna mengubah sesuatu, menggulirkan sesuatu, atau mengklik sesuatu di browser yang memicu peristiwa DOM browser JavaScript tradisional, yang mana lalu mengirimkan beban besar JSON atau data lainnya kembali ke server untuk diproses. Itu kemudian dikembalikan dan diterima oleh pustaka dan objek Javascipted dalam memori di browser, dan mengubah bagian halaman web pengguna dan markup.

Dikatakan sekitar 5-10% pengguna dan browser telah menonaktifkan Javascript sehingga semua JSON dan AJAX ini akan crash dan terbakar untuk orang-orang itu. yaitu CALLBACK tidak akan berfungsi.

Itulah yang terjadi di balik layar. Banyak dari itu berlebihan, jika Anda bertanya kepada saya. Dan itulah mengapa model Kontrol Web di ASP.NET telah dikritik di masa lalu.

Jika Anda meninggalkan ASP.NET sebentar, Anda dapat menulis sendiri bidang FORMULIR di halaman web HTML dengan satu kotak teks dan tombol dan menekannya dan melihatnya memposting ke server, persis seperti halaman ASP.NET akan melakukannya tetapi lebih cepat dan lebih sederhana. Itulah POSTBACK yang sebenarnya. Browser secara alami mengirimkan ke server Header HTTP POST yang diperlukan untuk melakukannya, tetapi menyimpan cache HTML di sisa halaman, sehingga membuatnya secepat kilat dengan sendirinya.

Untuk CALLBACK Anda bisa menambahkan kode Javascript / ECMAScript sederhana ke halaman HTML yang sama di mana, ketika pengguna menggulirkan beberapa teks atau tombol, mengklik, atau mengubah bidang formulir, halaman web tidak POST, tetapi di belakang layar Anda meminta Javascript mengirim sesuatu ke server. Bagaimana Anda menanganinya melalui JavaScript, JSON, atau perpustakaan Anda sendiri adalah kesepakatan lain. Tapi itu bukan sihir. Untuk orang-orang yang tidak memiliki Javascipt atau Javascript yang dinonaktifkan, Anda harus mendesain halaman tanpa CALLBACK dan cukup menyimpan semua perubahan yang muncul saat kontrol bidang formulir atau hyperlink diklik. Ini salah satu alasan untuk mempertimbangkan kembali rutinitas panggilan balik meskipun sebagian besar agen pengguna modern sekarang disiapkan untuk rutinitas situs web ECMAScripted.

Itulah yang membingungkan orang ... implementasi vendor ini dari permintaan HTTP yang sangat dasar dan trik Javascript dimasukkan ke dalam bahasa yang tidak jelas. Hal itu kemudian menyebabkan orang membangun aplikasi web mengerikan yang melakukan semua hal yang tidak perlu ini yang akan diselesaikan dengan pengkodean yang sangat sederhana.

Saya masih menggunakan dan merekomendasikan ASP.NET. Ini telah menempuh perjalanan panjang dan sistem yang hebat. Tetapi akan membantu jika lebih banyak orang memahami dasar-dasar apa yang mereka lakukan sebelum menggunakannya karena kerangka kerja ini dapat disesuaikan dan disederhanakan sedikit untuk memperbaikinya jika Anda melihat apa yang sebenarnya terjadi di balik terpal.

Stokely
sumber
0

Postback terjadi ketika permintaan dikirim ke server tidak perlu memberikan detail tentang keamanan untuk setiap permintaan.

Ketika Anda membuat permintaan untuk halaman lain callback digunakan oleh server

Andreas Grech
sumber
0

Postback juga merupakan perjalanan pulang pergi pada dasarnya ketika sebuah postback dijalankan pada saat itu ia memanggil metode khusus yang dikenal sebagai round trip..Postback berada di sisi server dimana round trip berada di sisi klien.

rohit
sumber