O que é um postback?

A melhor explicação que encontrei para um postBack é do Wiki.

um postback é um HTTP POST para a mesma página em que o formulário está.

Embora o artigo explique como uma segunda página era necessária no ASP, mas não é mais necessária no ASP.NET, ela não fornece muitos detalhes ou plano de fundo. Eu estou procurando um tomo de informação no PostBacks. Muito parecido com a simples questão de “como posso limpar uma casa” pode ser abordada por este livro de 900 páginas . Eu não preciso de 900 páginas, mas detalhes por favor. Eu encontrei um pequeno tutorial para o ciclo de vida do ASP.NET, mas ele realmente encobre os postbacks (entre outras coisas).

Eu estou olhando para os desenvolvedores que estão por aí antes do .NET e realmente não tomam esse tipo de coisa como algo garantido. Livros e hiperlinks são respostas razoáveis ​​ou acréscimos à sua resposta.

Até agora eu vi a resposta certa aludida repetidamente, e quase todo mundo chegou perto do que eu considero subjetivamente ser a marca.

Vamos começar com o básico:

Uma solicitação HTTP pode ser qualquer um dos verbos HTTP , mas os dois que mais usam são GET e POST. Bem, esses são os dois que um programador usa com mais frequência. Todos os outros têm algum propósito, se estiverem implementados no servidor. Quando você envia informações para o servidor, pode fazê-lo usando o URL (para solicitar uma página) ou dentro do corpo da solicitação (POST, PUT, DELETE, por exemplo).

Agora você observará (tenho certeza) que a URL em uma requisição GET geralmente contém dados, e isso é verdade, mas de acordo com o W3C, você não deve usar GET para alterar o estado, e ainda assim fazemos isso com frequência. É uma espécie de hack que todos concordamos é um uso real, e não um hack. Se isso faz dele um hack ou um detalhe real de implementação, deixo para você.

Então, quando você envia o corpo do POST (pulando os outros por enquanto, você pode descobrir daqui) com os elementos do formulário, você está enviando de volta certos elementos. Como esses elementos são definidos depende de você e do ambiente em que você está trabalhando. Você pode postar em um servidor com um elemento JSON no corpo, ou com XML, ou com campos de formulário. Geralmente, fazemos postagens de um elemento FORM no corpo do HTML.

Agora todo mundo diz: “oh, um postback é um pedido subsequente para uma página”. Mas isso não é verdade. Um postback é quando você envia dados via POST -> de volta para o servidor. Digo isso porque a diferença entre uma solicitação GET e uma solicitação POST é se os dados estão incluídos no corpo (e o verbo é usado, mas o cliente geralmente sabe como lidar com isso). Você poderia postar na página na primeira vez que a página é visitada, e na verdade o ASP.NET tem ferramentas para fazer isso na biblioteca. Você poderia ter um POST de cliente de desktop para um servidor (pense no Twitter) sem mostrar nenhuma página do servidor (ok, então o Twitter provavelmente não é o melhor conceito para usar aqui, mas eu quero ilustrar que você pode usar um cliente que não mostra a página da Web, portanto, nenhuma solicitação é necessária).

Então, realmente o que você deve ler lá em “postback” é “Estou enviando dados de volta ao servidor para processamento”. Presume-se que você tenha recuperado a página inicialmente com um GET para mostrar ao usuário o elemento

que possui os campos para que eles interajam e que, no final, você esteja enviando dados de volta. Mas espero que você veja que não precisa estar nessa ordem.

Então, aqui está outra coisa a considerar:

E se você desse ao usuário uma página com um monte de não

mas, em vez disso, tinha um botão conectado em javascript para concatenar todos os s com &value-n= e enviá-los como um GET ? Faz o mesmo, mas viola esse conceito de usar somente GET para solicitações. (possivelmente) discussão que se segue incentiva-me a reforçar que GET não deve ter efeitos colaterais (sem valores de atualização)

É por isso que você pode enviar a alguém um link para uma pesquisa no google, por exemplo. Por isso, não precisamos sempre POSTAR VOLTAR para o servidor para obter dados.

Espero que isto ajude. Felicidades

POSTBACK: Parte da técnica inventada do ASP.NET para ocultar a verdadeira natureza sem estado da web / HTTP por trás de uma fachada de estado. Isso resulta em código complexo (IsPostback, …), um ciclo de vida difícil de entender, vários events diferentes … e vários problemas (tamanho do ViewState, aderência da Web farm, servidores de estado, avisos do navegador (não usando padrão PRG) , …)

Veja o ASP.NET MVC .

Veja Visão Geral do Ciclo de Vida da Página ASP.NET no MSDN para uma boa introdução geral sobre o que acontece quando um pedido atinge o servidor.

Um PostBack é qualquer solicitação para uma página que não seja a primeira solicitação. Um PostBack sempre será em resposta a uma ação do usuário (acionada mais comumente por um Button, um controle AutoPostBack ou um Ajax).

Um post de volta é de ida e volta do cliente (Browser) para o servidor e depois de volta para o cliente.

Isso permite que a página passe pelo mecanismo asp no servidor e qualquer conteúdo dynamic seja atualizado.

aqui está uma boa explicação

ASP.Net usa um novo conceito (bem, novo em comparação com asp … é antiquado agora) do ViewState para manter o estado de seus controles asp.net. O que isto significa? Em suma, se você digitar algo em uma checkbox de texto ou selecionar uma lista suspensa de uma lista suspensa, ela se lembrará dos valores quando você clicar em um botão. Asp antigo forçaria você a escrever código para lembrar esses valores.

Isso é útil quando um usuário encontra um erro. Em vez de o programador ter que lidar com a lembrança de repovoar cada controle da web, o viewstate do asp.net faz isso automaticamente para você. Também é útil porque agora o código por trás pode acessar os valores desses controles em seu formulário web asp.net com intellisense.

Quanto à postagem na mesma página, sim, um botão “enviar” será postado em um manipulador de events no código por trás da página. Cabe ao manipulador de events no código para redirect para uma página diferente, se necessário (ou exibir uma mensagem de erro na sua página ou qualquer outra coisa que você precise fazer).

A definição da Wikipedia de postback é muito boa, mas eu adicionaria o seguinte: Um postback é um POST HTTP subsequente para a mesma página em que o formulário está.

Se eu tiver uma página com um formulário e, em vez de ter meu botão Enviar redirect o navegador para outra página que processará o formulário, em vez disso, o botão Enviar atualizará a página atual (e executará algumas etapas específicas para validar / salvar o página, presumivelmente), então diz-se que o botão Enviar está de volta à página atual.

Os postbacks podem estar cheios (atualizar a página inteira) ou parciais (em um caso em que o AJAX é empregado). Um postback de página parcial renderizará novamente apenas uma parte da página (como uma única lista suspensa, uma tabela, etc.).

No HTML antigo, a única maneira de atualizar algo na página da Web é reenviar uma nova página da Web para o navegador do cliente. Isso é o que o ASP costumava fazer, você tem que fazer isso chamar uma “PostBack” para enviar uma página atualizada para o cliente.

No ASP .NET, você não precisa reenviar toda a página da Web. Agora você pode usar o AJAX ou outros controles do ASP.NET, de modo que não seja necessário reenviar toda a página da Web.

Se você visitar algum site antigo, perceberá que, depois de clicar em algo, a página inteira precisa ser atualizada, esse é o ASP antigo. Na maioria dos sites modernos, você notará que o navegador não precisa atualizar a página inteira, apenas atualiza a parte do conteúdo que precisa ser atualizada. Por exemplo, no Stackoverflow, você vê a página atualizar apenas o conteúdo, não toda a página da Web.

Basta colocar isso por um pequeno código. Espero que seja útil para você. Quando você solicita primeiramente o URL da página. você pode ver o código fonte dele na maioria dos navegadores. Abaixo está uma amostra disso.

O essencial do Post Back é, na verdade, chamar o __doPostBack que submete todos os dados do formulário do seu primeiro pedido de volta ao servidor. ( __EVENTTARGET contém o id do controle.)

   NHibernate Demo     

NHibernate Demo

LinkButton

IsPostBack é uma propriedade da página Asp.Net que informa se a página está ou não on its initial load e se um usuário executou um botão em sua página da web que fez com que a página fosse postada de volta em si.

mais sobre … Asp.Net ispostback ()

Postback é um pedido durante o qual o ASP restaura valores das propriedades dos controles do estado de exibição.