O que é uma postagem?

142

Estou entrando no desenvolvimento da web e vi a palavra postback lançada. Vindo de um background não baseado na Web, o que um novo desenvolvedor web precisa saber sobre postbacks? (ou seja, o que são e quando surgem?)

Mais informações que você gostaria de compartilhar para ajudar um novato no mundo da web a conhecer os postbacks seriam muito apreciadas.

Scott Saad
fonte

Respostas:

178

O seguinte é destinado a iniciantes no ASP.Net ...

Quando isso acontece?

Uma postagem é originada no navegador do cliente. Geralmente, um dos controles na página será manipulado pelo usuário (um botão clicado ou a lista suspensa alterada etc.) e esse controle iniciará uma postagem. O estado desse controle, além de todos os outros controles da página, (conhecido como Estado da Visualização) é publicado de volta ao servidor da Web.

O que acontece?

Geralmente, a postagem faz com que o servidor da Web crie uma instância do código por trás da classe da página que iniciou a postagem. Esse objeto de página é então executado dentro do ciclo de vida normal da página com uma pequena diferença (veja abaixo). Se você não redirecionar o usuário especificamente para outra página em algum lugar durante o ciclo de vida da página, o resultado final da postagem será a mesma página exibida novamente para o usuário e poderá ocorrer outra postagem e assim por diante.

Por que isso acontece?

O aplicativo da web está sendo executado no servidor da web. Para processar a resposta do usuário, fazer com que o estado do aplicativo mude ou mude para uma página diferente, é necessário obter algum código para executar no servidor da web. A única maneira de conseguir isso é coletar todas as informações nas quais o usuário está trabalhando no momento e enviá-las de volta ao servidor.

Algumas coisas para um iniciante notar são ...

  • O estado dos controles na contra-capa está disponível dentro do contexto. Isso permitirá que você manipule os controles da página ou redirecione para outra página com base nas informações existentes.
  • Os controles em um formulário da Web têm eventos e, portanto, manipuladores de eventos, como qualquer outro controle. A parte de inicialização do ciclo de vida da página será executada antes do manipulador de eventos do controle que causou a postagem de volta. Portanto, o código no manipulador de eventos Init e Load da página será executado antes do código no manipulador de eventos do botão em que o usuário clicou.
  • O valor da propriedade "Page.IsPostBack" será definido como "true" quando a página estiver sendo executada após uma postagem, e "false" caso contrário.
  • Tecnologias como Ajax e MVC mudaram a maneira como os postbacks funcionam.
Andy McCluggage
fonte
2
Correção pequena - "O estado deste controle, além de todos os outros controles na página, (conhecido como o estado de exibição) é publicado novamente." Esses dados são realmente os dados da postagem. Os dados do Viewstate também são postados de volta, mas esse é o estado dos controles na última vez em que eles estavam no servidor.
Simon Mantenha
Nota postback é usado em todas as plataformas .NET, não apenas ASP.NET
JNF
1
"Para processar a resposta do usuário, fazer com que o estado do aplicativo mude ou mude para uma página diferente, você precisa obter algum código para executar no servidor da Web." Isso é um pouco enganador. Você nem sempre precisa de 'código para executar no servidor web' para fazer essas coisas. Quando possível, pode ser melhor processar a entrada do usuário no cliente. Uma das coisas mais importantes a saber sobre as postagens é como / quando não fazê-las; ou seja, quando a cuidar das coisas do lado do cliente, ou via Ajax, etc.
Hawkeye Parker
1
Concordo @HawkeyeParker. Eu escrevi isso de volta quando tudo que eu sabia era arquitetura de formulários da Web. As coisas certamente percorreram um longo caminho desde então! Toda a minha explicação definitivamente não leva o Ajax em consideração.
21713 Andy McCluggage em
27

Da wikipedia :

Um Postback é uma ação executada por uma página da web interativa, quando a página inteira e seu conteúdo são enviados ao servidor para processar algumas informações e, em seguida, o servidor publica a mesma página no navegador.

Galego
fonte
@Galwegian: Você não acha que isso só acontecerá quando ocorrerem alguns erros de validação para apresentar a mesma página do resultado.
Shirgill Farhan
21

A postagem ocorre quando uma página da Web publica seus dados de volta no mesmo script / dll / o que quer que tenha gerado a página.

Exemplo em C # (asp.net)

...

if (!IsPostback)
   // generate form
else
   process submitted data;
Chris Cudmore
fonte
20

Expandindo as definições fornecidas, a coisa mais importante que você precisa saber como desenvolvedor da Web é que NENHUM ESTADO É SALVO entre postbacks. Existem maneiras de manter o estado, como as coleções Session ou Viewstate no ASP.NET, mas, como regra geral, escreva seus programas onde você pode recriar seu estado em cada postagem.

Essa é provavelmente a maior diferença entre a programação de aplicativos para desktop e para a Web, e levei meses para aprender até o ponto em que instintivamente escrevi dessa maneira.

RB.
fonte
2
Bem colocado. nada é salvo exceto na sessão e viewstate
Miles
1
Ótimo ponto! Sim, isso definitivamente parece algo que demora um pouco para envolver o cérebro, quando proveniente do domínio de programação do cliente.
Scott Saad
10

O desenvolvimento da Web geralmente envolve páginas html que contêm formulários ( <form>tags). Os formulários são postados nos URLs. Você pode definir um formulário para postar em qualquer URL que desejar. Uma postagem é quando um formulário é postado de volta em sua própria página / URL.

O termo tem um significado especial para os desenvolvedores do ASP.Net , porque é o mecanismo principal que guia muito do comportamento de uma página - especificamente 'manipulação de eventos'. As páginas ASP.Net têm exatamente um formulário de servidor que quase sempre é postado de volta, e essas postagens acionam a execução no servidor de algo chamado Ciclo de Vida da Página.

Joel Coehoorn
fonte
6

O termo também é usado no desenvolvimento de aplicativos da web ao interagir com APIs de serviços da web de terceiros

Muitas APIs requerem uma integração interativa e não interativa. Normalmente, a parte interativa é feita usando redirecionamentos (o site 1 redireciona um usuário para o site 2, onde eles se conectam e são redirecionados novamente). A parte não interativa é feita usando um 'postback' ou um HTTP POST dos servidores do site 2 para os servidores do site 1.

Hemant
fonte
5

Quando um script gera um formulário html e a ação desse formulário http POST volta ao mesmo formulário.

mspmsp
fonte
4

A postagem é essencialmente quando um formulário é enviado para a mesma página ou script (.php .asp etc) em que você está atualmente para processar os dados, em vez de enviá-lo para uma nova página.

Um exemplo pode ser uma página de um fórum (viewpage.php), na qual você envia um comentário e ele é enviado para a mesma página (viewpage.php) e você a vê com o novo conteúdo adicionado.

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

Morphio
fonte
3

Uma postagem de volta é algo que faz com que a página do navegador da Web do cliente seja enviada de volta ao servidor.

Há muita informação por aí, pesquise no Google por postbacks.

Na maioria das vezes, qualquer controle ASP causa uma postagem de volta (clique no botão / link), mas alguns não acontecem, a menos que você os peça (caixa de seleção / caixa de combinação)

Milhas
fonte
3

Postback refere-se a formulários HTML. Um formulário HTML possui 2 métodos: GET e POST. Esses métodos determinam como os dados são enviados do cliente através do formulário para o servidor. Um Postback é a ação de POSTing de volta à página de envio. Essencialmente, ele forma um circuito completo do cliente para o servidor e vice-versa.

steve_c
fonte
2

No entanto, a pergunta foi respondida com precisão acima, mas quero apenas compartilhar meu conhecimento. O postback é basicamente uma propriedade que podemos usar enquanto realizamos algumas tarefas que precisam de nós para gerenciar o estado da página, ou que disparamos algum evento, por exemplo, com um clique no botão ou se atualizamos nossa página. Quando nossa página é carregada pela primeira vez, ou seja, se atualizamos nossa página, nesse momento a propriedade postback é falsa e, depois disso, ela se torna verdadeira.

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

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

user3114934
fonte