152

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

Web の世界の初心者がポストバックに気付くのを助けるために共有したい情報があれば、大歓迎です。

4

11 に答える 11

187

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

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

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

何が起こるのですか?

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

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

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

初心者が注意すべき点は...

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

ウィキペディアから:

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

于 2008-10-08T15:02:51.543 に答える
22

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

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

于 2008-10-08T15:05:05.160 に答える
21

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

C# での例 (asp.net)

...

if (!IsPostback)
   // generate form
else
   process submitted data;
于 2008-10-08T16:36:34.990 に答える
12

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

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

于 2008-10-08T15:11:32.417 に答える
7

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

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

于 2010-03-18T20:46:06.680 に答える
5

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

于 2008-10-08T15:03:22.010 に答える
4

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

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

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

于 2008-10-08T15:08:43.187 に答える
3

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

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

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

于 2008-10-08T15:03:21.840 に答える
3

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

于 2008-10-08T15:04:54.007 に答える