web-dev-qa-db-ja.com

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

私はWeb開発への道を進んでおり、Word postbackが飛び回っているのを見ました。非Webベースのバックグラウンドから来た場合、新しいWeb開発者はポストバックについて何を知る必要がありますか?(つまり、それらは何で、いつ発生しますか?)

Webの世界の初心者がポストバックを認識できるようにするために共有したい情報があれば、非常にありがたいです。

135
Scott Saad

以下は、ASP.Netの初心者向けです...

いつ発生しますか?

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

何が起こるのですか?

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

なぜ起こるのですか?

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

初心者が注意すべきことは...

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

wikipedia から:

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

27
Galwegian

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

C#の例(asp.net)

...

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

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

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

20
RB.

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

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

10
Joel Coehoorn

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

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

6
Hemant

スクリプトがhtmlフォームを生成し、そのフォームのアクションhttpが同じフォームにPOSTで戻る場合。

5
mspmsp

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

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

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

4
Morphio

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

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

ほとんどの場合、任意のASPコントロールはポストバック(ボタン/リンククリック)を引き起こしますが、(checkbox/combobox)に指示しない限りそうでないものもあります。

3
Miles

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

3
steve_c

しかし、上記の質問には正確に回答されていますが、私の知識を共有したいだけです。ポストバックは基本的に、ページの状態を管理する必要があるいくつかのタスクを実行しているときに使用できるプロパティです。ボタンをクリックするか、ページを更新した場合。ページが初めて読み込まれるとき、つまりページを更新した場合、つまり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

2
user3114934