¿Qué es una devolución de datos?

142

Me estoy abriendo camino en el desarrollo web y he visto la palabra postback lanzada. Viniendo de un entorno no basado en la web, ¿qué debe saber un nuevo desarrollador web sobre las devoluciones? (es decir, ¿qué son y cuándo surgen?)

Cualquier información adicional que le gustaría compartir para ayudar a un novato en el mundo web a estar al tanto de las devoluciones sería muy apreciada.

Scott Saad
fuente

Respuestas:

178

Lo siguiente está dirigido a principiantes en ASP.Net ...

¿Cuando sucede?

Una devolución de datos se origina en el navegador del cliente. Por lo general, uno de los controles de la página será manipulado por el usuario (se hace clic en un botón o se cambia el menú desplegable, etc.), y este control iniciará una devolución de datos. El estado de este control, más todos los demás controles de la página (conocido como Ver estado) se publica de nuevo en el servidor web.

¿Lo que pasa?

Con mayor frecuencia, la devolución de datos hace que el servidor web cree una instancia del código detrás de la clase de la página que inició la devolución. Este objeto de página se ejecuta dentro del ciclo de vida normal de la página con una ligera diferencia (ver más abajo). Si no redirige al usuario específicamente a otra página en algún lugar durante el ciclo de vida de la página, el resultado final de la devolución será la misma página que se muestra al usuario nuevamente, y luego podría ocurrir otra devolución, y así sucesivamente.

¿Por que sucede?

La aplicación web se ejecuta en el servidor web. Para procesar la respuesta del usuario, hacer que el estado de la aplicación cambie o pasar a una página diferente, debe obtener un código para ejecutar en el servidor web. La única forma de lograr esto es recopilar toda la información en la que el usuario está trabajando actualmente y enviarla de vuelta al servidor.

Algunas cosas para que un principiante tenga en cuenta son ...

  • El estado de los controles en la página posterior de publicación está disponible dentro del contexto. Esto le permitirá manipular los controles de la página o redirigir a otra página en función de la información allí.
  • Los controles en un formulario web tienen eventos y, por lo tanto, controladores de eventos, como cualquier otro control. La parte de inicialización del ciclo de vida de la página se ejecutará antes del controlador de eventos del control que causó la devolución de la publicación. Por lo tanto, el código en el controlador de eventos Init y Load de la página se ejecutará antes que el código en el controlador de eventos para el botón en el que hizo clic el usuario.
  • El valor de la propiedad "Page.IsPostBack" se establecerá en "verdadero" cuando la página se ejecute después de una devolución de datos, y "falso" en caso contrario.
  • Tecnologías como Ajax y MVC han cambiado la forma en que funcionan las devoluciones.
Andy McCluggage
fuente
2
Pequeña corrección: "El estado de este control, más todos los demás controles de la página (conocido como Ver estado) se publica de nuevo". Estos datos son en realidad los datos de devolución de datos. Los datos del estado de vista también se publican de nuevo, pero ese es el estado de los controles la última vez que estuvieron en el servidor.
Simon Keep
Nota: la devolución de datos se usa en todas las plataformas .NET, no solo en ASP.NET
JNF
1
"Para procesar la respuesta del usuario, hacer que el estado de la aplicación cambie o moverse a una página diferente, necesita obtener un código para ejecutar en el servidor web". Esto es un poco engañoso. No siempre necesita 'código para ejecutar en el servidor web' para hacer estas cosas. Cuando sea posible, puede ser mejor procesar la entrada del usuario en el cliente. Una de las cosas más importantes que debe saber sobre las devoluciones es cómo / cuándo no hacerlas; es decir, cuándo cuidar las cosas del lado del cliente, o a través de Ajax, etc.
Hawkeye Parker
1
De acuerdo @HawkeyeParker. Escribí esto cuando todo lo que sabía era la arquitectura de formularios web. ¡Las cosas ciertamente han recorrido un largo camino desde entonces! Toda mi explicación definitivamente no tiene en cuenta a Ajax y en absoluto.
Andy McCluggage
27

De wikipedia :

Una devolución de datos es una acción realizada por una página web interactiva, cuando la página completa y sus contenidos se envían al servidor para procesar cierta información y luego, el servidor publica la misma página de nuevo en el navegador.

Galés
fuente
@Galwegian: ¿No crees que solo sucederá cuando se produzcan algunos errores de validación para presentar la misma página que el resultado?
Shirgill Farhan
21

La devolución de datos ocurre cuando una página web publica sus datos nuevamente en el mismo script / dll / lo que sea que generó la página en primer lugar.

Ejemplo en C # (asp.net)

...

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

Ampliando las definiciones dadas, lo más importante que debe saber como desarrollador web es que NO SE SALVA NINGÚN ESTADO entre las devoluciones. Hay formas de conservar el estado, como las colecciones Session o Viewstate en ASP.NET, pero, como regla general, escriba sus programas donde pueda recrear su estado en cada devolución de datos.

Esta es probablemente la mayor diferencia entre la programación de aplicaciones de escritorio y la basada en la web, y me llevó meses aprender hasta el punto en que estaba escribiendo instintivamente de esta manera.

RB.
fuente
2
así poner. nada se guarda excepto en la sesión y el estado de la vista
Miles
1
Gran punto! Sí, esto definitivamente parece algo que toma un poco de tiempo para comprender el cerebro cuando viene del dominio de programación del cliente.
Scott Saad,
10

El desarrollo web generalmente involucra páginas html que contienen formularios ( <form>etiquetas). Formularios publicados en URL. Puede configurar un formulario determinado para publicar en cualquier url que desee. Una devolución de datos es cuando un formulario vuelve a publicar en su propia página / url.

El término tiene un significado especial para los desarrolladores de ASP.Net , porque es el mecanismo principal que impulsa gran parte del comportamiento de una página, específicamente el "manejo de eventos". Las páginas ASP.Net tienen exactamente un formulario de servidor que casi siempre se publica de nuevo en sí mismo, y estas copias de seguridad activan la ejecución en el servidor de algo llamado el ciclo de vida de la página.

Joel Coehoorn
fuente
6

El término también se usa en el desarrollo de aplicaciones web cuando interactúa con API de servicios web de terceros

Muchas API requieren una integración interactiva y no interactiva. Por lo general, la parte interactiva se realiza mediante redireccionamientos (el sitio 1 redirige a un usuario al sitio 2, donde inicia sesión y se redirige de nuevo). La parte no interactiva se realiza mediante una 'devolución de datos' o una POST HTTP desde los servidores del sitio 2 a los servidores del sitio 1.

Hemant
fuente
5

Cuando un script genera un formulario html y la acción de ese formulario, http POST vuelve al mismo formulario.

mspmsp
fuente
4

La devolución de datos es esencialmente cuando se envía un formulario a la misma página o secuencia de comandos (.php .asp, etc.) en la que se encuentra actualmente para procesar los datos en lugar de enviarlo a una nueva página.

Un ejemplo podría ser una página en un foro (viewpage.php), donde envía un comentario y se envía a la misma página (viewpage.php) y luego lo verá con el nuevo contenido agregado.

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

Morphio
fuente
3

Una publicación posterior es cualquier cosa que hace que la página del navegador web del cliente sea devuelta al servidor.

Hay mucha información por ahí, busca en Google las devoluciones.

La mayoría de las veces, cualquier control ASP provocará una publicación posterior (clic en el botón / enlace), pero algunos no lo harán a menos que usted lo indique (casilla de verificación / cuadro combinado)

Millas
fuente
3

La devolución de datos se refiere a formularios HTML. Un formulario HTML tiene 2 métodos: GET y POST. Estos métodos determinan cómo se envían los datos del cliente a través del formulario al servidor. Una devolución de datos es la acción de enviar POST a la página de envío. En esencia, forma un circuito completo desde el cliente hasta el servidor y viceversa.

steve_c
fuente
2

Sin embargo, la pregunta se responde con precisión anteriormente, pero solo quiero compartir mi conocimiento. La devolución de datos es básicamente una propiedad que podemos usar al realizar algunas tareas que nos necesitan para administrar el estado de la página, es decir, hemos activado algún evento, por ejemplo, haciendo clic en un botón o si hemos actualizado nuestra página. Cuando nuestra página se carga por primera vez, es decir, si hemos actualizado nuestra página, en ese momento la propiedad postback es falsa, y luego se vuelve verdadera.

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

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

usuario3114934
fuente