Che cos'è un postback?


142

Mi sto facendo strada nello sviluppo web e ho visto la parola postback buttata in giro. Proveniente da un background non web, cosa deve sapere un nuovo sviluppatore web dei postback? (cioè cosa sono e quando sorgono?)

Qualsiasi altra informazione che desideri condividere per aiutare un principiante nel mondo Web a essere consapevole dei postback sarebbe molto apprezzata.

Risposte:


178

Quanto segue è rivolto ai principianti di ASP.Net ...

Quando succede?

Un postback ha origine dal browser client. Di solito uno dei controlli nella pagina viene manipolato dall'utente (un pulsante cliccato o un menu a discesa modificato, ecc.) E questo controllo avvia un postback. Lo stato di questo controllo, oltre a tutti gli altri controlli sulla pagina, (noto come Visualizza stato) viene postato di nuovo sul server Web.

Che succede?

Più comunemente il postback fa sì che il web server crei un'istanza del codice dietro la classe della pagina che ha avviato il postback. Questo oggetto pagina viene quindi eseguito nel normale ciclo di vita della pagina con una leggera differenza (vedi sotto). Se non reindirizzi l'utente in modo specifico verso un'altra pagina da qualche parte durante il ciclo di vita della pagina, il risultato finale del postback sarà di nuovo la stessa pagina visualizzata all'utente, quindi potrebbe verificarsi un altro postback e così via.

Perché succede?

L'applicazione Web è in esecuzione sul server Web. Per elaborare la risposta dell'utente, modificare lo stato dell'applicazione o passare a un'altra pagina, è necessario ottenere un codice da eseguire sul server Web. L'unico modo per raggiungere questo obiettivo è raccogliere tutte le informazioni su cui l'utente sta attualmente lavorando e rispedirle tutte al server.

Alcune cose che un principiante può notare sono ...

  • Lo stato dei controlli nella pagina posteriore dei post è disponibile nel contesto. Ciò ti consentirà di manipolare i controlli della pagina o reindirizzare a un'altra pagina in base alle informazioni ivi contenute.
  • I controlli in un modulo Web hanno eventi, e quindi gestori di eventi, proprio come qualsiasi altro controllo. La parte di inizializzazione del ciclo di vita della pagina verrà eseguita prima del gestore eventi del controllo che ha causato il postback. Pertanto, il codice nel gestore eventi Init e Load della pagina verrà eseguito prima del codice nel gestore eventi per il pulsante su cui l'utente ha fatto clic.
  • Il valore della proprietà "Page.IsPostBack" verrà impostato su "true" quando la pagina viene eseguita dopo un postback e "false" in caso contrario.
  • Tecnologie come Ajax e MVC hanno cambiato il modo in cui funzionano i postback.

2
Piccola correzione: "Lo stato di questo controllo, oltre a tutti gli altri controlli sulla pagina, (noto come Visualizza stato) è stato postato indietro." Questi dati sono in realtà i dati di Postback. Anche i dati di Viewstate vengono registrati di nuovo, ma questo è lo stato dei controlli l'ultima volta che sono stati sul server.
Simon Keep,

Nota il postback viene utilizzato su tutte le piattaforme .NET, non solo ASP.NET
JNF

1
"Per elaborare la risposta dell'utente, modificare lo stato dell'applicazione o passare a una pagina diversa, è necessario ottenere un codice da eseguire sul server Web." Questo è un po 'fuorviante. Non è sempre necessario "eseguire il codice sul server Web" per eseguire queste operazioni. Quando possibile, può essere meglio elaborare l'input dell'utente sul client. Una delle cose più importanti da sapere sui post-back è come / quando non eseguirli; vale a dire, quando prendersi cura delle cose sul lato client, o via Ajax, ecc.
Hawkeye Parker,

1
Accetto @HawkeyeParker. L'ho scritto quando tutto quello che sapevo era l'architettura dei moduli Web. Le cose hanno sicuramente fatto molta strada da allora! Tutte le mie spiegazioni sicuramente non tengono conto dell'Ajax e non ne tengono affatto conto.
Andy McClubag,

27

Da Wikipedia :

Un postback è un'azione intrapresa da una pagina Web interattiva, quando l'intera pagina e i suoi contenuti vengono inviati al server per l'elaborazione di alcune informazioni e, quindi, il server invia la stessa pagina al browser.


@Galwegian: Non pensi che accadrà solo quando si verificano alcuni errori di convalida in modo da presentare la stessa pagina del risultato.
Shirgill Farhan,

21

Il postback si verifica quando una pagina web pubblica i suoi dati nello stesso script / dll / qualunque cosa abbia generato la pagina in primo luogo.

Esempio in C # (asp.net)

...

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

20

Espandendo le definizioni fornite, la cosa più importante che devi sapere come sviluppatore web è che NESSUN STATO È SALVATO tra i postback. Esistono modi per conservare lo stato, ad esempio le raccolte Session o Viewstate in ASP.NET, ma come regola empirica scrivere i programmi in cui è possibile ricreare lo stato su ogni postback.

Questa è probabilmente la più grande differenza tra la programmazione di applicazioni desktop e basata sul web e mi ci sono voluti mesi per imparare al punto in cui scrivevo istintivamente in questo modo.


2
ben messo. nulla viene salvato tranne nella sessione e nel viewstate
Miglia,

1
Ottimo punto! Sì, questo sembra sicuramente qualcosa che impiega un po 'a avvolgere il cervello, quando proviene dal dominio di programmazione client.
Scott Saad,

10

Lo sviluppo web in genere coinvolge pagine html che contengono moduli ( <form>tag). I moduli vengono inviati agli URL. Puoi impostare un determinato modulo da pubblicare su qualsiasi URL tu voglia. Un postback è quando un modulo torna alla propria pagina / URL.

Il termine ha un significato speciale per gli sviluppatori ASP.Net , poiché è il meccanismo principale che guida gran parte del comportamento di una pagina, in particolare la "gestione degli eventi". Le pagine ASP.Net hanno esattamente un modulo server che quasi sempre riporta a se stesso, e questi postback attivano l'esecuzione sul server di qualcosa chiamato ciclo di vita della pagina.


6

Il termine viene utilizzato anche nello sviluppo di applicazioni Web quando si interagisce con API di servizi Web di terze parti

Molte API richiedono un'integrazione interattiva e non interattiva. In genere la parte interattiva viene eseguita utilizzando i reindirizzamenti (il sito 1 reindirizza un utente al sito 2, dove accedono e vengono reindirizzati indietro). La parte non interattiva viene eseguita utilizzando un "postback" o un POST HTTP dai server del sito 2 ai server del sito 1.


5

Quando uno script genera un modulo HTML e l'azione POST http di quel modulo torna allo stesso modulo.


4

Il postback è essenzialmente quando un modulo viene inviato alla stessa pagina o script (.php .asp ecc.) In cui ci si trova attualmente per elaborare i dati anziché inviarti a una nuova pagina.

Un esempio potrebbe essere una pagina su un forum (viewpage.php), in cui si invia un commento che viene inviato alla stessa pagina (viewpage.php) e si vedrebbe quindi con il nuovo contenuto aggiunto.

Vedi: http://en.wikipedia.org/wiki/Postback


3

Un post back è tutto ciò che fa sì che la pagina dal browser Web del client venga rimandata al server.

Ci sono molte informazioni là fuori, cerca su Google postback.

La maggior parte delle volte, qualsiasi controllo ASP provocherà un postback (clic sul pulsante / collegamento), ma alcuni non lo fanno a meno che non glielo dica (casella di controllo / casella combinata)


3

Postback si riferisce a moduli HTML. Un modulo HTML ha 2 metodi: GET e POST. Questi metodi determinano il modo in cui i dati vengono inviati dal client tramite il modulo al server. Un postback è l'azione di postare indietro alla pagina di invio. In sostanza, forma un circuito completo dal client, al server e viceversa.


2

Eppure alla domanda viene data una risposta esattamente sopra, ma voglio solo condividere le mie conoscenze. Il postback è fondamentalmente una proprietà che possiamo usare mentre svolgiamo alcune attività che ci richiedono di gestire lo stato della pagina, ovvero abbiamo attivato alcuni eventi, ad esempio un clic sul pulsante o se abbiamo aggiornato la nostra pagina. Quando la nostra pagina viene caricata per la prima volta, ovvero se abbiamo aggiornato la nostra pagina, in quel momento la proprietà postback è falsa e successivamente diventa vera.

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

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

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.