2

UpdatePanelについて私が持っている知識は

  1. それらはAjaxリクエストを使用して非同期で動作します。
  2. それらは部分的なポストバックを実行します。

最近、私はjQueryのメソッドを使用してAjaxリクエストにも取り組んでいましたが$.ajax()、私が作成したAjaxリクエストとUpdatePanelが作成したAjaxリクエストにいくつかの違いがありました。

  1. UpdatePanelのAjaxリクエストはページ全体のライフサイクルを実行しますが、私のAjaxリクエストは、呼び出されるように指定した特定のメソッドのみを呼び出します。
  2. UpdatePanelによって呼び出されるメソッドはWebMethodとしてタグ付けする必要はありませんが、Ajaxリクエストによって呼び出されるメソッドはWebMethodである必要があります。

Webを検索してこれらの違いの詳細を取得しましたが、リソースが見つかりませんでした。私とUpdatePanelによるAjax呼び出しの違い、より具体的には、これらの違いがどのように発生したか、UpdatePanelがどのような特別なトリックを実行して達成するかを教えてもらえますか。その機能?

4

2 に答える 2

3

私はこの質問が好きだった +1

基本的に、悪の UpdatePanel はすべての悪の根源です。悲しいことに、それは =( です。舞台裏の更新パネルはサーバーへの非同期ポストバックを発生させますが、何が起こるかを完全に理解するには、UpdatePanel の目標を理解する必要があります。

UpdatePanel は、ASP.Net Web フォームで動作するように設計されています。これらのコントロールが正しく動作するには、whoooole ASP.Net ページのライフサイクルを通過する必要があるため、 whoooole ページの ViewStateが必要です。したがって、UpdatePanel を使用してポストバックを実行するたびに、ページのごく一部のみを部分的にレンダリングしたい場合でも、ページ全体のビューステートがサーバーに送信されます....最悪です。マイクロソフトはなぜこのモンスターを作成したのですか? 5 ~ 6 年前 (またはそれ以上) には、AJAX が今日ほど普及していなかったからだと思います。もう 1 つの理由は、Microsoft が Web コントロールの機能を失うことなく、AJAX 呼び出しを簡単な方法で記述するためのフレームワークを提供したかったことです。

UpdatePanelしたがって、これを念頭に置いて、AJAX 呼び出しとの違いは次のとおりです。

AJAX 呼び出しは、サーバー メソッドが必要とするデータのみを送信し、必要なデータのみを返します。純粋な AJAX 呼び出しを使用した場合のパフォーマンスは印象的です。

しかし、私の Ajax リクエストによって呼び出されるメソッドは WebMethod でなければなりません。

サーバーからメソッドを公開するには、さまざまな方法があることを意味します。

  • 従来の Web サービスの使用 - スクリプト サービス (ASMX)

  • PageMethods (ASPX ページの静的メソッド) の使用

  • WCF サービスの公開

  • WCF REST サービスの公開

  • ウェブ API の使用

  • MVC コントローラーのアクションの使用

  • JSON などの特定のコンテンツ タイプを返すカスタム HttpHandlers の使用

Web フォームを使用している場合、純粋な AJAX 呼び出しでサーバー メソッドを使用するときにサーバー メソッドを公開するために使用するアプローチに関係なく、結果は同じです。

純粋な AJAX 呼び出しを使用する場合は、MVC への移行を検討する必要があります。これは、Web フォームでは Web コントロールの機能が失われるためです。つまり、開発がより困難になります。

于 2012-08-01T13:42:29.313 に答える
0

部分的なポストバックを実行します。

いいえ、更新パネルは完全なポストバックを実行します。ページで部分的な更新を実行するだけです。

UpdatePanel の Ajax リクエストは完全なページ ライフ サイクルを実行しますが、私の Ajax リクエストは、呼び出されるために提供した特定のメソッドのみを呼び出します。

正確には、更新パネルは完全なポストバックを実行します。非常に非効率的です。

于 2012-08-01T13:43:00.233 に答える