Differenza tra Postback e Callback


116

Continuo a sentire queste parole " callback " e " postback " lanciate in giro.
Qual è la differenza tra due?

Il postback è molto specifico per le pagine ASP.NET?

Risposte:


204

Un Postback si verifica quando i dati (l'intera pagina) sulla pagina vengono inviati dal client al server .. cioè i dati vengono inviati al server , e quindi la pagina viene aggiornata (ridisegnata) ... pensaci come " inviare al server l'intera pagina (asp.net) piena di dati ".

D'altra parte, una richiamata è anche un tipo speciale di postback , ma è solo un rapido viaggio di andata e ritorno al server per ottenere un piccolo insieme di dati (normalmente), e quindi la pagina non viene aggiornata, a differenza del postback ... pensalo come " chiamare il server e ricevere indietro alcuni dati ".

Con Asp.Net, ViewState non viene aggiornato quando viene richiamato un callback , a differenza di un postback.

Il motivo per cui l'intera pagina viene pubblicata con ASP.Net è perché ASP.Net racchiude l'intera pagina in un metodo<form> con un post , quindi quando si fa clic su un pulsante di invio nella pagina, il modulo viene inviato al server con tutti i campi che sono nel modulo ... praticamente l'intera pagina stessa.

Se stai usando FireBug (per Firefox), puoi effettivamente vedere i callback invocati sul server in Console. In questo modo, vedrai quali dati specifici vengono inviati al server ( Request) e anche i dati che il server ti ha inviato indietro ( Response).


L'immagine seguente illustra i cicli di vita della pagina sia di un postback che di un callback in un sito Web basato su ASP.NET:

Cicli di vita delle pagine ASP.NET
(fonte: esri.com )


18
In realtà, un callback è un termine di programmazione più generale per una funzione che deve essere eseguita dopo che un'altra funzione è stata completata.
Ryan Doherty

1
È quando un puntatore a una funzione viene passato a un'altra funzione, che verrà successivamente richiamato
Andreas Grech,


18

Un postback si verifica quando una richiesta viene inviata dal client al server per la stessa pagina di quella che l'utente sta attualmente visualizzando. Quando si verifica un postback, l'intera pagina viene aggiornata e puoi vedere la progressione tipica sulla barra di avanzamento nella parte inferiore del browser.

Un callback, generalmente utilizzato con AJAX, si verifica quando viene inviata una richiesta dal client al server per il quale la pagina non viene aggiornata, solo una parte di essa viene aggiornata senza che si verifichi alcuno sfarfallio nel browser


5

Sono d'accordo con la risposta di Dreas, ma vorrei aggiungere un paio di punti. Postback è un termine introdotto molto di recente dalla programmazione ASP .NET come ha spiegato Dreas, mentre il callback è più generico ed è stato utilizzato molto prima che esistesse lo sviluppo web. In effetti ho sentito parlare per la prima volta di callback nei giorni in cui ho iniziato a programmare in C (forse il termine esisteva prima, non lo so) e significa semplicemente un puntatore a una funzione e questo puntatore a una funzione (nome questo A) viene passato a un'altra funzione (nome questo B) che in seguito richiamerà A. Callback è anche recentemente utilizzato da Yahoo UI Connection Manager e altri framework Ajax, ma credo che il termine abbia avuto il suo primo utilizzo nei vecchi giorni C.


4

Gran parte di questa discussione è il linguaggio gobbledygook ASP.NET ...

La risposta è si. Postback è un "termine" specifico di ASP.NET di Microsoft Ma ricorda, i fornitori come Microsoft avvolgono le loro versioni PROPRIE di questi processi attorno alle loro implementazioni, confondendo tutti noi su ciò che SUCCEDE VERAMENTE nel mondo Http / Html.

La loro versione di POSTBACK è fondamentalmente una tradizionale richiesta HTTP POST rinviata al server di origine. Ma in ASP.NET lo fanno attaccando un gigantesco tag di elemento HTML FORM (con l'attributo del metodo POST) attorno all'intera pagina web piuttosto che ai tradizionali controlli del modulo in una piccola parte di una pagina web. Lo fanno perché utilizzano la specifica HTTP per mantenere lo "stato" della loro pagina e dei suoi controlli e per assicurarsi che l'intera pagina, anche il tradizionale markup del campo non formato, ritorni intatto.

Sfortunatamente, questo invia una quantità ENORME di dati non necessari in rete in modo tale che il loro VIEWSTATE e il suo POSTBACK gemello nella pagina siano stati visti da molti come uno spreco di larghezza di banda e un modo sciatto di implementare lo stato della pagina web. Posso mostrarti che la maggior parte dei browser e dei siti Web moderni, se progettati utilizzando CSS memorizzabile nella cache e markup HTML coerente, restituirà lo stato della pagina in modo abbastanza naturale utilizzando la cache HTML nativa del browser. cioè il POSTBACK completo spesso non è necessario.

CALLBACK è solo JavaScript. È solo ECMASCRIPT trucchi da circo che ASP.NET memorizza in quella che chiamano la loro API AJAX in gigantesche librerie JavaScript che il tuo browser scarica dal server e che gli sviluppatori ASP.NET impacchettano inconsapevolmente nelle loro pagine web per attivare modifiche in una pagina web senza POSTBACK completo. L'API ASP.NET per AJAX crea tutto questo enorme Javascript che si trova sul lato client e che viene attivato nel browser quando l'utente cambia qualcosa, passa sopra qualcosa o fa clic su qualcosa nel browser attivando i tradizionali eventi DOM del browser JavaScript, che quindi invia un enorme carico di JSON o altri dati al server per l'elaborazione. Questo viene quindi restituito e accettato dalle librerie e dagli oggetti Javascipted in memoria nel browser e modifica parti della pagina Web e del markup degli utenti.

Si dice che circa il 5-10% degli utenti e dei browser abbia Javascript disabilitato, quindi tutto questo JSON e AJAX si bloccherebbe e brucerebbe per quelle persone. cioè CALLBACK non funzionerebbe.

Questo è ciò che accade dietro le quinte. La maggior parte è eccessiva, se me lo chiedi. Ed è per questo che i modelli di controllo Web in ASP.NET sono stati criticati in passato.

Se abbandoni ASP.NET per un secondo, potresti scrivere tu stesso un semplice campo FORM in una pagina web HTML con una singola casella di testo e pulsante e premerlo e guardarlo postare sul server, esattamente come farebbe una pagina ASP.NET ma più veloce e più semplice. Questo è il vero POSTBACK. Il browser invia naturalmente al server l'intestazione POST HTTP necessaria per farlo, ma memorizza nella cache l'HTML nel resto della pagina, in modo da renderlo velocissimo da solo.

Per CALLBACK potresti semplicemente aggiungere un semplice codice Javascript / ECMAScript alla stessa pagina HTML dove, quando l'utente passa sopra un testo o un pulsante, fa clic o modifica un campo modulo, la pagina web non POST, ma dietro le quinte tu fare in modo che Javascript invii qualcosa al server. Il modo in cui lo gestisci tramite JavaScript, JSON o librerie è un altro affare. Ma non è magico. Per le persone senza Javascipt o Javascript disabilitato, è necessario progettare pagine senza CALLBACK e memorizzare nella cache solo le modifiche che vengono restituite quando si fa clic sui controlli del campo modulo o sui collegamenti ipertestuali. È un motivo per riconsiderare le routine di callback anche se la maggior parte degli user-agent moderni ora sono configurati per le routine del sito Web ECMAScripted.

Questo è ciò che confonde le persone ... queste implementazioni dei fornitori di richieste HTTP di base e trucchi JavaScript vengono stratificati in un linguaggio che non è chiaro. Quindi fa sì che le persone creino mostruose applicazioni web che fanno tutte queste cose non necessarie che una codifica molto semplice risolverebbe.

Uso ancora e consiglio ASP.NET. Ha fatto molta strada e un ottimo sistema. Ma sarebbe utile se più persone capissero le basi di ciò che fanno prima di usarli poiché questi framework possono essere personalizzati e semplificati un po 'per migliorarli se vedi cosa sta realmente succedendo sotto il cofano.


0

Un postback si verifica quando una richiesta viene inviata a un server, non è necessario fornire dettagli sulla sicurezza per ciascuna richiesta.

Quando si effettua una richiesta per l'altra pagina, il callback viene utilizzato dal server


0

Un postback è anche un round trip fondamentalmente quando un postback viene eseguito in quel momento chiama il metodo speciale che è noto come round trip .. Il postback è sul lato server dove come round trip è sul client sid.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.