0

経験豊富な開発者である (ただし .NET には詳しくない) 友人から、ASP.NET のコード ビハインド コードが実際に実行される場所を尋ねられました。サーバーまたはクライアントで。コード ビハインド ファイルのメソッドは、ポストバックを引き起こさないドロップダウン リストの選択などのクライアント側イベントに応答するため、クライアントで実行され、JavaScript にコンパイルされると仮定しました。

私が本当に探しているのは、コード ビハインド ファイル内のコードがアプリケーションの残りの部分に対してどのように/どこで実行されるかをより詳しく理解することです。

4

4 に答える 4

5

コードビハインドは常にサーバー上で実行されます。それが理由で、 とも呼ばれASP.NET WebFormsます。Web ページが実行されると、次のようになります。

  1. Web ページが HTML フォームとしてフラッシュされる
  2. Web コントロールは、必要な Javascript を含む HTML 入力要素としてフラッシュされます
  3. Javascript はそのまま残ります (動的に注入されない限り)

次の質問...サーバー側で適切なイベントを実行するために、クライアント側で実行したイベントを ASP.NET サーバー側はどのように認識しますか?

答えは、ASP.NET は各 Web コントロールを 1 つ以上の html 要素に変換し、それらに一意の名前を付けて、イベントを生成する HTML 要素の名前を取得し、それに応じて動作できるようにすることです。(他のさまざまな用途ViewStateとは別に) を使用して、html コントロール名がラウンドトリップで改ざんされていないことを確認します。

他の回答にあるリンクは、理解を深めるのに役立ちます。

于 2013-02-12T20:46:27.430 に答える
1

TLDR:.NETコードは、サーバー上で動作および実行されるアセンブリ(.DLL)ファイルにコンパイルされます。

JavaScriptはクライアントで実行され(通常、node.jsを参照)、.NETコードはサーバーで実行されます。これらの2つのテクノロジーは、HTTPリクエスト/レスポンスを介して相互に通信します。

ページがサーバーから最初に要求されると、ページはすべての.NETコードを実行し、サーバーからの応答はレンダリングされるHTMLです。このHTMLには、スクリプトファイルやスタイルシートファイルなどの他のファイルへのリンクが含まれている場合があります。サーバーが応答を送信すると、そのページとは関係がなくなります。

JavaScriptなどのクライアント側言語は、全ページのポストバック、部分的なポストバック(UpdatePanels、gross)、またはAJAXを介してサーバーと通信できます。それらはサーバーに新しいリクエストを送信し、サーバーは新しいページ/HTML/データなどで応答します。

クライアント/サーバーとWebアプリケーションの相互作用の詳細については、この記事を参照してください。

于 2013-02-12T20:49:15.603 に答える
1

http://msdn.microsoft.com/en-us/magazine/cc163675.aspx

コード ビハインド ファイルはサーバー側で実行されます。ASP.NET は、レンダリング メソッドに加えて、すべてのコントロール変数宣言を .aspx ファイルから部分クラスとして簡単に生成できます。この部分クラスは、簡略化された分離コード クラスとマージできます。これは、.NET Framework 2.0 での Windows フォームの動作とまったく同じです。デザイナーが生成したすべてのコードは兄弟部分クラスに配置され、アプリケーション ロジックおよびイベント ハンドラーとマージされて単一の Form 派生クラスになり、継承に頼らずにマシン生成コードと開発者コードが明確に分離されます。

于 2013-02-12T20:38:39.977 に答える
0

コード ビハインド ファイルはサーバー上で実行されます。インターネット上で利用できるリソースはたくさんあります。それらの1つはこのリンクである可能性があります

あなたの答えを得たことを願っています

于 2013-02-12T20:47:08.630 に答える