85 votes

Qu'est-ce qu'une publication?

La meilleure explication que j'ai trouvé pour une publication est de Wiki.

une publication est un HTTP POST sur la même page que le formulaire est sur.

Alors que l'article est d'expliquer comment une deuxième page a été nécessaire en ASP, mais ne sont plus nécessaires dans ASP.NET il ne donne pas beaucoup de détails ou d'arrière-plan. Je suis à la recherche d'un foutu tome de l'information sur les Publications. Un peu comme la simple question: "comment puis-je nettoyer une maison" peut être abordé par cette de 900 page de livre. Je n'ai pas besoin de 900 pages de la peine, mais les détails s'il vous plaît. J'ai trouvé un joli petit tutoriel pour ASP.NET cycle de vie, mais il sérieusement des gloses sur les publications (entre autres choses).

Je suis à la recherche pour le développeur qui ont été dans le passé .NET et de ne pas prendre ces sortes de choses pour acquises. Livres et liens hypertextes sont des réponses raisonnables ou plus pour votre réponse.

62voto

jcolebrand Points 11824

Jusqu'à présent, j'ai vu la bonne réponse fait allusion à plusieurs reprises, et presque tout le monde a peur de ce que je considère subjectivement à la marque.

Commençons par la base:

Une requête HTTP peut être l'un des verbes HTTP, mais le principal deux personnes utilisent sont GET et POST. Eh bien, ce sont les deux un programmeur utilise le plus souvent. Les autres ont tous un but, si elles sont mises en œuvre sur le serveur. Lorsque vous envoyez des informations pour le serveur, vous pouvez le faire soit par le biais de l'utilisation de l'URL (pour la demande d'une page) ou dans le corps de la requête (POST, PUT, DELETE, par exemple).

Maintenant, vous aurez remarque (je suis sûr) que l'URL d'une requête GET contient souvent des données, et c'est vrai, mais selon le W3C, vous ne devriez pas utiliser GET pour modifier l'état, et pourtant nous le faisons souvent. C'est une sorte de hack que nous sommes tous d'accord est d'une utilisation réelle, et non pas un hack. Si cela fait un hack ou une mise en œuvre effective de détails je laisse jusqu'à vous.

Ainsi, lorsque vous envoyez le corps de la POSTE (en ignorant les autres pour l'instant, vous pouvez le comprendre, à partir d'ici) avec les éléments de formulaire, vous l'envoyez en retour de certains éléments. Comment ces éléments sont définis à vous et à l'environnement dans lequel vous travaillez. Vous pourrait poster à un serveur avec un JSON élément dans le corps, ou avec XML, ou avec des champs de formulaire. En général, nous ne poteaux à partir d'un élément de FORMULAIRE dans le corps de l'HTML.

Maintenant tout le monde dit, "oh, une publication est une requête vers une page". Mais, ce n'est pas vrai. Une publication est lorsque vous envoyez des données via la POSTE -> sur le serveur. Je dis cela parce que la différence entre une demande et une demande POST est de savoir si les données sont incluses dans le corps (et le verbe utilisé, mais en général, le client sait comment traiter avec que). Vous pourriez publication de la page pour la première fois, la page est visitée, et en fait ASP.NET a les outils pour le faire que dans la bibliothèque. Vous pourriez certainement avoir un client de bureau de POSTE de données à un serveur (pensez à Twitter), sans montrer aucune page web à tous à partir du serveur (ok, twitter n'est probablement pas le meilleur concept pour un exemple ici, mais je veux illustrer que vous pouvez utiliser un client qui ne veut pas afficher la page web, de sorte qu'aucune demande n'est nécessaire).

Alors, vraiment ce que vous devriez y lire dans "publication" est "je suis l'Affichage de données vers le serveur pour le traitement". Il est présumé que vous avez récupéré la page initialement avec un GET pour afficher à l'utilisateur l' <form> élément qui a <input> champs d'interagir avec, et qu'à la fin vous êtes l'envoi des données en retour. Mais j'espère que vous pouvez voir qu'il n'a pas à être dans l'ordre.

Alors, voici quelque chose d'autre à prendre en compte:

Que faire si vous avez donné à l'utilisateur une page avec un tas d' <input>s et pas <form> mais au lieu de cela, avait un bouton programmé en javascript pour concat tous ceux - <input>s avec &value-n= et de les envoyer comme un GET? Fait la même chose, mais viole la notion de seulement OBTENIR de l'aide pour les demandes. (peut-être)le débat qui a suivi m'encourage à le renforcer, GET devrait pas avoir d'effets secondaires (pas de mise à jour des valeurs)

C'est comment vous pouvez l'envoyer à quelqu'un un lien vers une recherche google, par exemple. Donc, nous n'avons pas TOUJOURS de publier sur le serveur pour obtenir les données.

Espérons que cette aide. Cheers

28voto

Yaakov Ellis Points 15470

Voir Vue d' ensemble du cycle de vie d'une page ASP.NET sur MSDN pour une bonne introduction générale sur ce qui se produit lorsqu'une demande parvient au serveur.

Un postback est une requête pour une page qui n'est pas la première requête. Un PostBack sera toujours en réponse à une action de l'utilisateur (déclenchée le plus souvent par un bouton, un contrôle AutoPostBack ou Ajax).

27voto

Ian Mercer Points 19271

POSTBACK: Partie de la technique artificielle utilisée par ASP.NET pour masquer la véritable nature sans état du Web / HTTP derrière une façade dynamique. Cela se traduit par un code complexe (IsPostback, ...), un cycle de vie de page difficile à comprendre, de nombreux événements différents, ... et de nombreux problèmes (taille de ViewState, intégrité de la batterie de serveurs Web, serveurs d'état, avertissements du navigateur (ne pas utiliser de modèle PRG) , ...)

Voir ASP.NET MVC à la place.

13voto

David Kethel Points 747

Un retour est un aller-retour du client (navigateur) au serveur, puis de nouveau au client.

Cela vous permet de passer en revue le moteur asp sur le serveur et de mettre à jour tout contenu dynamique.

voici une belle explication

10voto

Scottie Points 2254

ASP.Net utilise un nouveau concept (bien, de nouveau par rapport à l'asp... c'est vieillot maintenant) de l'état d'affichage de maintenir l'état de votre asp.net les contrôles. Qu'est-ce que cela signifie? En un mot, si vous tapez quelque chose dans une zone de texte ou sélectionnez une liste déroulante à partir d'une dropdownlist, il rappelle les valeurs lorsque vous cliquez sur un bouton. Vieux asp aurait la force de vous écrire du code pour se souvenir de ces valeurs.

Ceci est utile si un utilisateur rencontre une erreur. Au lieu de le programmeur d'avoir à traiter avec le souvenir de re-remplir chaque contrôle du web, le asp.net viewstate fait cela pour vous automatiquement. Il est également utile, car maintenant le code de l'arrière peut accéder aux valeurs de ces contrôles sur votre asp.net formulaire web avec intellisense.

Comme pour l'affichage à la même page, oui, un bouton "soumettre" affichera à un gestionnaire d'événement sur le code-behind de la page. C'est le gestionnaire d'événement dans le code-behind pour rediriger vers une autre page si besoin est ou de diffuser un message d'erreur sur votre page ou autre chose que vous pourriez avoir besoin de le faire).

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