Qu'est-ce qu'une publication?

142

Je me fraye un chemin dans le développement Web et j'ai vu le mot postback lancé. Venant d'un arrière-plan non basé sur le Web, que doit savoir un nouveau développeur Web sur les publications? (c'est-à-dire que sont-ils et quand surviennent-ils?)

Toute information supplémentaire que vous aimeriez partager pour aider un débutant dans le monde du Web à être conscient des publications serait très appréciée.

Scott Saad
la source

Réponses:

178

Ce qui suit est destiné aux débutants à ASP.Net ...

Quand est-ce que cela arrive?

Une publication provient du navigateur client. Habituellement, l'un des contrôles de la page sera manipulé par l'utilisateur (un bouton cliqué ou une liste déroulante modifiée, etc.), et ce contrôle lancera une publication. L'état de ce contrôle, ainsi que tous les autres contrôles de la page (connu sous le nom d'état d' affichage ) est Posté en arrière sur le serveur Web.

Ce qui se produit?

Le plus souvent, la publication amène le serveur Web à créer une instance du code derrière la classe de la page qui a lancé la publication. Cet objet de page est ensuite exécuté dans le cycle de vie normal de la page avec une légère différence (voir ci-dessous). Si vous ne redirigez pas spécifiquement l'utilisateur vers une autre page quelque part au cours du cycle de vie de la page, le résultat final de la publication sera la même page affichée à nouveau pour l'utilisateur, puis une autre publication pourrait se produire, et ainsi de suite.

Pourquoi cela arrive-t-il?

L'application Web s'exécute sur le serveur Web. Afin de traiter la réponse de l'utilisateur, de modifier l'état de l'application ou de passer à une autre page, vous devez obtenir du code à exécuter sur le serveur Web. Le seul moyen d'y parvenir est de collecter toutes les informations sur lesquelles l'utilisateur travaille actuellement et de les renvoyer au serveur.

Certaines choses à noter pour un débutant sont ...

  • L'état des contrôles sur la dernière page de publication est disponible dans le contexte. Cela vous permettra de manipuler les contrôles de page ou de rediriger vers une autre page en fonction des informations qui s'y trouvent.
  • Les contrôles d'un formulaire Web ont des événements, et donc des gestionnaires d'événements, comme tous les autres contrôles. La partie d'initialisation du cycle de vie de la page s'exécutera avant le gestionnaire d'événements du contrôle qui a provoqué la publication. Par conséquent, le code du gestionnaire d'événements Init and Load de la page s'exécutera avant le code du gestionnaire d'événements pour le bouton sur lequel l'utilisateur a cliqué.
  • La valeur de la propriété «Page.IsPostBack» sera définie sur «true» lorsque la page s'exécute après une publication, et «false» dans le cas contraire.
  • Des technologies comme Ajax et MVC ont changé le fonctionnement des publications.
Andy McCluggage
la source
2
Petite correction - "L'état de ce contrôle, ainsi que tous les autres contrôles de la page, (connu sous le nom d'état d'affichage) est Posté en arrière." Ces données sont en fait les données de publication. Les données Viewstate sont également renvoyées, mais c'est l'état des contrôles la dernière fois qu'ils étaient sur le serveur.
Simon Keep
Remarque: la publication est utilisée sur toutes les plates-formes .NET, pas seulement sur ASP.NET
JNF
1
"Afin de traiter la réponse de l'utilisateur, de modifier l'état de l'application ou de passer à une autre page, vous devez obtenir du code à exécuter sur le serveur Web." C'est un peu trompeur. Vous n'avez pas toujours besoin de «code à exécuter sur le serveur Web» pour faire ces choses. Lorsque cela est possible, il peut être préférable de traiter les entrées de l'utilisateur sur le client. L'une des choses les plus importantes à savoir sur les post-backs est de savoir comment / quand ne pas les faire; c'est-à-dire, quand s'occuper des choses côté client, ou via Ajax, etc.
Hawkeye Parker
1
D'accord @HawkeyeParker. J'ai écrit cela quand je ne savais que l'architecture Web Forms. Les choses ont certainement parcouru un long chemin depuis! Toutes mes explications ne tiennent certainement pas compte de l'Ajax et du tout.
Andy McCluggage
27

De wikipedia :

Une publication est une action entreprise par une page Web interactive, lorsque la page entière et son contenu sont envoyés au serveur pour traiter certaines informations, puis que le serveur publie la même page dans le navigateur.

Galvégien
la source
@Galwegian: Ne pensez-vous pas que cela ne se produira que lorsque des erreurs de validation se produiront afin de présenter la même page que le résultat.
Shirgill Farhan
21

La publication se produit lorsqu'une page Web publie ses données dans le même script / dll / tout ce qui a généré la page en premier lieu.

Exemple en C # (asp.net)

...

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

En développant les définitions données, la chose la plus importante que vous devez savoir en tant que développeur Web est qu'aucun état n'est sauvegardé entre les publications. Il existe des moyens de conserver l'état, tels que les collections Session ou Viewstate dans ASP.NET, mais en règle générale, écrivez vos programmes dans lesquels vous pouvez recréer votre état à chaque publication.

C'est probablement la plus grande différence entre la programmation d'applications de bureau et Web, et il m'a fallu des mois pour apprendre au point où j'écrivais instinctivement de cette façon.

RB.
la source
2
bien placé. rien n'est enregistré sauf dans la session et viewstate
Miles
1
Bon point! Oui, cela semble vraiment être quelque chose qui prend un peu de temps à comprendre, quand on vient du domaine de la programmation client.
Scott Saad
10

Le développement Web implique généralement des pages html contenant des formulaires ( <form>balises). Les formulaires sont publiés sur des URL. Vous pouvez définir un formulaire donné pour qu'il soit publié sur n'importe quelle URL que vous souhaitez. Un postback, c'est quand un formulaire renvoie sur sa propre page / URL.

Le terme a une signification particulière pour les développeurs ASP.Net , car c'est le mécanisme principal qui entraîne une grande partie du comportement d'une page - en particulier la «gestion des événements». Les pages ASP.Net ont exactement une forme de serveur qui se renvoie presque toujours à elle-même, et ces publications déclenchent l'exécution sur le serveur de quelque chose appelé le cycle de vie de la page.

Joël Coehoorn
la source
6

Le terme est également utilisé dans le développement d'applications Web lors de l'interaction avec des API de service Web tierces

De nombreuses API nécessitent à la fois une intégration interactive et non interactive. En règle générale, la partie interactive est effectuée à l'aide de redirections (le site 1 redirige un utilisateur vers le site 2, où il se connecte et est redirigé). La partie non interactive se fait à l'aide d'une 'publication', ou d'un HTTP POST des serveurs du site 2 vers les serveurs du site 1.

Hemant
la source
5

Lorsqu'un script génère un formulaire html et l'action de ce formulaire, http POST revient au même formulaire.

mspmsp
la source
4

La publication est essentiellement lorsqu'un formulaire est soumis à la même page ou au même script (.php .asp, etc.) que celui sur lequel vous vous trouvez actuellement pour traiter les données plutôt que de vous envoyer vers une nouvelle page.

Un exemple pourrait être une page sur un forum (viewpage.php), où vous soumettez un commentaire et il est soumis à la même page (viewpage.php) et vous le verriez alors avec le nouveau contenu ajouté.

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

Morphio
la source
3

Une publication est tout ce qui provoque le renvoi de la page du navigateur Web du client vers le serveur.

Il y a beaucoup d'informations là-bas, recherchez google pour les publications.

La plupart du temps, tout contrôle ASP provoquera une publication (clic sur un bouton / lien), mais certains ne le font pas à moins que vous ne leur disiez (case à cocher / combobox)

Miles
la source
3

La publication renvoie aux formulaires HTML. Un formulaire HTML a 2 méthodes: GET et POST. Ces méthodes déterminent comment les données sont envoyées du client via le formulaire vers le serveur. Une publication est l'action de POSTER sur la page de soumission. Essentiellement, il forme un circuit complet du client au serveur et inversement.

steve_c
la source
2

Pourtant, la question est répondue avec précision ci-dessus, mais je veux juste partager mes connaissances. La publication est fondamentalement une propriété que nous pouvons utiliser tout en effectuant certaines tâches qui nécessitent que nous gérions l'état de la page, c'est-à-dire que nous avons déclenché un événement pour par exemple un clic sur un bouton ou si nous avons actualisé notre page. Lorsque notre page se charge pour la toute première fois, c'est-à-dire si nous avons actualisé notre page, à ce moment-là, la propriété postback est false, et après cela, elle devient vraie.

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

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

user3114934
la source