157 votes

Qu'est-ce qu'un postback ?

Je fais mon chemin dans le développement web et j'ai vu le mot postback jetées. Je viens d'un milieu qui n'est pas basé sur le web, que doit savoir un nouveau développeur web sur les postbacks ? (c'est-à-dire qu'est-ce qu'ils sont et quand surviennent-ils ?)

Toute information supplémentaire que vous souhaiteriez partager pour aider un débutant dans le monde du web à prendre conscience des retours arrière serait très appréciée.

193voto

Andy McCluggage Points 8583

Ce qui suit s'adresse aux débutants en ASP.Net...

Quand cela se produit-il ?

Un postback provient du navigateur du client. Généralement, l'un des contrôles de la page est manipulé par l'utilisateur (un bouton cliqué ou une liste déroulante modifiée, etc.) et ce contrôle déclenche un retour arrière. L'état de ce contrôle, ainsi que de tous les autres contrôles de la page (connu sous le nom d'état de la vue) est le suivant Dos affiché au serveur web.

Que se passe-t-il ?

Le plus souvent, le postback entraîne la création par le serveur web d'une instance de la classe de code de la page qui a déclenché le postback. 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 du postback sera la même page affichée à nouveau à l'utilisateur, puis un autre postback pourrait se produire, et ainsi de suite.

Pourquoi cela se produit-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. La seule façon d'y parvenir est de collecter toutes les informations sur lesquelles l'utilisateur est en train de travailler et de les renvoyer au serveur.

Voici quelques points à noter pour un débutant...

  • L'état des contrôles de la page de réaffectation est disponible dans le contexte. Cela vous permettra de manipuler les contrôles de la 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 sera exécutée avant le gestionnaire d'événements du contrôle qui a provoqué le renvoi. Par conséquent, le code du gestionnaire d'événements Init et Load de la page sera exécuté avant le code du gestionnaire d'événements du bouton sur lequel l'utilisateur a cliqué.
  • La valeur de la propriété "Page.IsPostBack" sera définie comme "true" lorsque la page s'exécute après un postback, et "false" sinon.
  • Des technologies comme Ajax et MVC ont changé la façon dont les retours en arrière fonctionnent.

3 votes

Petite correction - "L'état de ce contrôle, ainsi que de tous les autres contrôles de la page, (connu sous le nom d'état de la vue) est affiché en retour." Cette donnée est en fait la donnée Postback. Les données de l'état d'affichage sont également réaffichées, mais il s'agit de l'état des contrôles la dernière fois qu'ils étaient sur le serveur.

0 votes

Notez que le postback est utilisé sur toutes les plateformes .NET, et pas seulement sur ASP.NET.

1 votes

"Afin de traiter la réponse de l'utilisateur, de faire en sorte que l'état de l'application change, ou de passer à une autre page, vous devez obtenir du code à exécuter sur le serveur web." Cette affirmation est un peu trompeuse. Vous ne devez pas toujours besoin de du "code à exécuter sur le serveur web" pour faire ces choses. Lorsque cela est possible, il est 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 comment/quand pas pour les réaliser, c'est-à-dire quand s'occuper des choses côté client, ou via Ajax, etc.

28voto

Galwegian Points 29966

De wikipedia :

Un Postback est une action prise par une page web interactive, lorsque l'ensemble de la page et son contenu sont envoyés au serveur pour traiter certaines informations et ensuite, le serveur renvoie la même page au navigateur.

0 votes

@Galwegian : Ne pensez-vous pas qu'alors cela ne se produira que lorsque certaines erreurs de validation se produisent afin de présenter la même page que le résultat.

0 votes

Comment le serveur renvoie-t-il la même page au navigateur ?

24voto

RB. Points 17993

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 SAUVÉ entre les postbacks. Il existe des moyens de conserver l'état, comme les collections Session ou Viewstate dans ASP.NET, mais en règle générale, écrivez vos programmes de manière à pouvoir recréer l'état à chaque postback.

Il s'agit probablement de la plus grande différence entre la programmation d'applications de bureau et la programmation d'applications Web. Il m'a fallu des mois pour apprendre à écrire de cette façon de manière instinctive.

2 votes

Bien dit. Rien n'est sauvegardé sauf dans la session et l'état d'affichage.

1 votes

Bon point ! Oui, cela semble vraiment être quelque chose qui demande un peu de temps pour s'y retrouver, quand on vient du domaine de la programmation client.

21voto

Chris Cudmore Points 11133

Le postback se produit lorsqu'une page Web renvoie ses données au même script/dll/quelque chose qui a généré la page en premier lieu.

Exemple en C# (asp.net)

...

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

7voto

Hemant Points 61

Ce terme est également utilisé dans le développement d'applications web lors de l'interaction avec des API de services web tiers.

De nombreuses API nécessitent une intégration à la fois interactive et non interactive. Généralement, la partie interactive est réalisée à l'aide de redirections (le site 1 redirige un utilisateur vers le site 2, où il se connecte, puis est redirigé vers le site 2). La partie non interactive est réalisée à l'aide d'un "postback", ou d'un HTTP POST des serveurs du site 2 vers les serveurs du site 1.

0 votes

Où puis-je obtenir plus d'informations à ce sujet ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X