ポストバックとは何ですか?


142

私はWeb開発に取り組んでおり、ポストバックという言葉が飛び交うのを見てきました。非Webベースのバックグラウンドから来た、新しいWeb開発者はポストバックについて何を知っている必要がありますか?(つまり、それらは何であり、いつ発生しますか?)

ウェブの世界の初心者がポストバックに気付くのを助けるためにあなたが共有したいより多くの情報が最も大いに高く評価されるでしょう。

回答:


178

以下はASP.Netの初心者を対象としています...

それはいつ起こりますか?

ポストバックはクライアントブラウザから発生します。通常、ページ上のコントロールの1つがユーザーによって操作され(ボタンがクリックされた、ドロップダウンが変更されたなど)、このコントロールはポストバックを開始します。(ビューステートとして知られている)このコントロールの状態に加え、ページ上の他のすべてのコントロールは、されポストバック Webサーバーに。

何が起こるのですか?

最も一般的には、ポストバックにより、Webサーバーはポストバックを開始したページのコードビハインドクラスのインスタンスを作成します。このページオブジェクトは、通常のページライフサイクル内で実行されますが、若干の違いがあります(以下を参照)。ページのライフサイクル中にユーザーを別のページに明確にリダイレクトしない場合、ポストバックの最終結果は同じページがユーザーに再度表示され、別のポストバックが発生する可能性があります。

なぜそれが起こるのですか?

WebアプリケーションがWebサーバーで実行されています。ユーザーの応答を処理したり、アプリケーションの状態を変更したり、別のページに移動したりするには、Webサーバーで実行するコードを取得する必要があります。これを実現する唯一の方法は、ユーザーが現在作業しているすべての情報を収集して、サーバーにすべて送信することです。

初心者が注意すべきいくつかのことは...

  • ポストバックページのコントロールの状態は、コンテキスト内で利用できます。これにより、ページコントロールを操作したり、そこにある情報に基づいて別のページにリダイレクトしたりできます。
  • Webフォーム上のコントロールには、他のコントロールと同様に、イベント、つまりイベントハンドラーがあります。ページのライフサイクルの初期化部分は、ポストバックを引き起こしたコントロールのイベントハンドラーの前に実行されます。したがって、ページのInitおよびLoadイベントハンドラーのコードは、ユーザーがクリックしたボタンのイベントハンドラーのコードの前に実行されます。
  • 「Page.IsPostBack」プロパティの値は、ページがポストバック後に実行されている場合は「true」に設定され、そうでない場合は「false」に設定されます。
  • AjaxやMVCなどのテクノロジーにより、ポストバックの動作方法が変わりました。

2
小さな修正-「このコントロールの状態と、ページ上の他のすべてのコントロール(ビューステートと呼ばれます)がポストバックされます。」このデータは実際にはポストバックデータです。ビューステートデータもポストバックされますが、サーバーに最後に存在したときのコントロールの状態です。
Simonは、

ポストバックは、ASP.NETだけでなく、すべての.NETプラットフォームで使用されることに注意してください
JNF

1
「ユーザーの応答を処理したり、アプリケーションの状態を変更したり、別のページに移動したりするには、Webサーバーで実行するコードを取得する必要があります。」これは少し誤解を招くものです。これらのことを実行するために、「Webサーバーで実行するコード」が常に必要なわけではありません。可能な場合は、クライアントでユーザー入力を処理することをお勧めします。ポストバックについて知っておくべき最も重要なことの1つは、どのように/いつ行わないかです。つまり、クライアント側やAjaxなどを介して処理する場合
Hawkeye Parker

1
@HawkeyeParkerに同意してください。私が知っていたすべてがWebフォームアーキテクチャであるときに、私はこれを書き戻しました。それ以来、物事は確かに長い道のりを歩んでいる!私の説明のすべては間違いなくAjaxをまったく考慮に入れていません。
Andy McCluggage 2013年

27

ウィキペディアから:

ポストバックは、インタラクティブなWebページによって実行されるアクションで、ページ全体とそのコンテンツがサーバーに送信されて情報が処理され、サーバーが同じページをブラウザーにポストバックします。


@Galwegian:結果として同じページを表示するために、いくつかの検証エラーが発生したときにのみ発生すると思いませんか?
Shirgill Farhan、

21

ポストバックは、Webページが最初にページを生成したものと同じスクリプト/ dll /何にでもデータをポストするときに発生します。

C#の例(asp.net)

...

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

20

与えられた定義を拡張すると、Web開発者として知っておく必要がある最も重要なことは、ポストバック間で状態が保存されないことです。ASP.NETのSessionコレクションやViewstateコレクションなど、状態を保持する方法はいくつかありますが、経験則として、すべてのポストバックで状態を再作成できるプログラムを記述します。

これはおそらく、デスクトップとWebベースのアプリケーションプログラミングの最大の違いであり、この方法で本能的に書いているところまで学ぶのに数か月かかりました。


2
よく置きます。セッションとビューステート以外では何も保存されません
Miles

1
素晴らしい点!はい、これは間違いなく、クライアントプログラミングドメインから来たときに、頭を一周するのに少し時間がかかるもののようです。
スコットサード

10

Web開発には通常、フォーム(<form>タグ)を保持するhtmlページが含まれます。フォームはURLに投稿します。特定のフォームを設定して、必要な任意のURLに投稿できます。ポストバック、フォームポストはそれ自身のページ/ URLにバックアップする場合です。

ASP.Net開発者にとってこの用語には特別な意味があります。これは、ページの多くの動作、特に「イベント処理」を駆動する主要なメカニズムであるためです。ASP.Netページには、ほぼ常にそれ自体にポストバックする1つのサーバーフォームがあり、これらのポストバックは、ページライフサイクルと呼ばれるもののサーバーでの実行をトリガーします。


6

この用語は、サードパーティのWebサービスAPIと対話するときのWebアプリケーション開発でも使用されます

多くのAPIには、インタラクティブな統合と非インタラクティブな統合の両方が必要です。通常、インタラクティブな部分はリダイレクトを使用して行われます(サイト1はユーザーをサイト2にリダイレクトし、そこでサインインしてからリダイレクトされます)。非インタラクティブ部分は、サイト2のサーバーからサイト1のサーバーへの「ポストバック」またはHTTP POSTを使用して行われます。


5

スクリプトがhtmlフォームを生成し、そのフォームのアクションが同じフォームにHTTP POSTすると、


4

ポストバックとは、基本的には、フォームを同じページまたはスクリプト(.php .aspなど)に送信して、新しいページに送信するのではなく、現在データを処理しているときです。

例としては、フォーラムのページ(viewpage.php)があり、コメントを送信すると、同じページ(viewpage.php)に送信され、新しいコンテンツが追加されたページが表示されます。

参照:http : //en.wikipedia.org/wiki/Postback


3

ポストバックとは、クライアントのWebブラウザーからのページをサーバーにプッシュバックするものです。

世の中にはたくさんの情報があります。グーグルでポストバックを検索してください。

ほとんどの場合、ASPコントロールはポストバック(ボタン/リンクのクリック)を引き起こしますが、(チェックボックス/コンボボックス)に指示しない限り発生しません。


3

ポストバックはHTMLフォームを指します。HTMLフォームには、GETとPOSTの2つのメソッドがあります。これらのメソッドは、クライアントからフォームを介してサーバーにデータが送信される方法を決定します。ポストバックとは、送信ページにPOSTするアクションです。本質的には、クライアントからサーバー、そして再び戻る完全な回路を形成します。


2

しかし、質問は上記で正確に回答されていますが、私の知識を共有したいだけです。ポストバックは基本的に、ページの状態を管理する必要があるいくつかのタスクを実行するときに使用できるプロパティです。つまり、ボタンクリックなどのイベントを発生させた場合や、ページを更新した場合です。ページが初めて読み込まれるとき、つまりページを更新したときは、その時点でpostback-propertyはfalseになり、その後trueになります。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.