2009-08-31 8 views
3

私の友人は私のasp.netサイトでのみ更新パネルを使っていたので、本当に直接AJAX機能を使っていなかったと私に言いました。彼は何について話しているのですか?UpdatePanelと「伝統的な」AJAXとの違いは何ですか?

+2

UpdatePanelsは、問題を解決するためにスレッジハンマーを使用するような、非常に鈍い手段です。外科的精度を必要とする非常に繊細なアプリケーションで作業する人は、スレッジハンマーがまだ正当なツールであると常に理解しているわけではありません(裏返して、多くの無知なデベロッパーがスカリーを使用する必要があるときにスレッジハンマーを使います) –

答えて

7

厳格なAJAX)非同期のJavascript(JS XMLHttpRequestオブジェクトを使用して)、およびXML(またはJSONを使用することを意味します。つまり、サーバーやその他のサービスに非常に軽量なコールバックを行い、結果を取得し、クライアント上で何らかの方法で処理します。双方(要求と応答の処理)はJavascriptを書く必要があります。

ASP.NET UpdatePanelsはこれを行いますが、すべての詳細をあなたから隠します。つまり、データ転送ペイロードは標準フォームPOSTのように見えます。返されるデータは実際には現在のページに文字通り挿入/置換されるHTMLブロックです。

これは(ページのライフサイクル全体を完了する必要があるため)サーバー上で「重い」呼び出しを行い、帯域幅の使用率を上げます。 ASP.NET MVCなどの新しいテクノロジでは、UpdatePanelsを使用する必要はなく、軽量JSONサービスを使用してデータを返すこともできますが、クライアント側でJavascriptを使用してUIにバインドする必要があります。

+0

私はajaxアップデートパネルのWebサイトを持っており、これに対処するためにより低レベルのコードに移動したい場合、最も良い例は何ですか。 – leora

+0

私はこのSOの質問があなたを助けるかもしれないと思う - http://stackoverflow.com/questions/415711/replace-updatepanel-with-jquery –

0

わかりません。

更新パネルを使用することで、.net ajaxがそのページのコンテンツを要求し、パネルに配置しています。これはかなり古典的な 'ajax'実装です。

彼はajax呼び出しを使ってデータをポスティングすることを指しているかもしれません。これはajaxパネルもカバーしていますが、jQueryを使ってどうやって行うのかとは異なります。

0

たぶん彼は、数千のJavaScriptペーパーカットに苦しむことなく、優れたクロスブラウザAJAX機能を持っていることに腹を立てているかもしれません。

+0

うわー、なぜこれは下落していますか? –

0

は、たぶん彼はあなたに完全にAJAXコントロールツールキットを使用することを望んでいる - それは、dragPanelsを実装するWebオーサリングツール、カレンダー、アニメーション、アコーディオンなどなど

をもしそうなら、親切な方法で彼の中指のジェスチャーを示しています:)

3

UpdatePanelsはajaxを使用していますが、あなたは実際にどのように動作しているかを抽象化しています。

UpdatePanelsを使用すると、ajaxは「無料」になります。小規模のアプリケーションの場合は、UpdatePanelsが大量の大きなアプリになると便利ですが、falldownとなります。そして、これが起こったとき、私は推測することを念頭に置いて asp.net devsは、基礎をなす技術が隠されているため、どこから始めるべきかわからない。

あなたの相棒を幸せにし、あなたはjQueryを使って始めるしている彼に言う;)

0

彼はおそらく、client-side library for ASP.NET AJAXを参照しています。これにより、更新パネルに電力を供給するAJAXに直接アクセスできるようになります。

彼は、アップデートパネルがコアのAjax技術に依存していないという意味で間違っています。彼は、AJAXでもっと多くのことができてから、更新パネルで可能だという意味で正しいかもしれません。

0

これはちょっと主観的に聞こえるかもしれませんが、私は本当に良い経験といくつかの本当に悪い経験をUpdatePanelで持っています(そして、はい、UpdatePanelは実際 AJAXです)。

いいえ: UpdatePanelを使用すると、AJAX機能を既存のWebページに大幅に書き直すことなく容易に組み込むことができます。

Bad: UpdatePanelは、すべてのページデータをポストバックします。私はこれのために重大なパフォーマンスの問題を見ました。従来のASP.Netページに十分なサイズのビューステートデータがある場合、UpdatePanelはうまく機能しません。このビューステートデータはサーバー上で利用できますが、大規模なデータセットではなく、ユーザー数が増えると便利です。

プログラマーが多くのツールと同じように、UpdatePanelはうまくも悪くもありません。使用方法によって異なります。

2

厳密に言えば、私はUpdatePanelが実際にAJAXであることに同意する必要があります。

AJAXは、UpdatePanelよりもはるかに合理化されていると考えている人。 Webページの多くのajax機能には、クライアント側のHTTPリクエストを使用してサーバー上の情報を処理し、レスポンスを取得し、レスポンスに基づいてページ上の何かを更新する、非常に特殊なアクティビティを実行することが含まれます。

UpdatePanelは、同じように動作しますが、マクロレベルで動作します。 UpdatePanelには、本質的にフォームまたはフォームの要素をページに戻すコードが含まれています。このコードは、サーバー側から見ると、UpdatePanelを使用しない場合と同じ方法でポストバックイベントを処理して処理できます。

UpdatePanelに関連付けられたJavaScriptライブラリは、更新パネルにラップされたページの一部のみを更新します。

UpdatePanelにバンドルされているJavaScriptは、httpリクエストを使用してデータを投稿し、応答としてXmlを受け取ります。これも非同期です。それで、それはAJAXです。詳細はあなたから隠されているだけです。リクエストを直接操作せずにレスポンスを処理しても、AJAXではありません。しかし、UpdatePanelは、一般的なAJAXの実装と比較して、トラフィック/ペイロードの方が多少重いです。

関連する問題