この記事では、主に軽量の ajax コンポーネント 01 の書き方を紹介します - Web フォーム プラットフォーム上のさまざまな実装方法と比較して、必要な友人はそれを参照してください
はじめに
Asp.net WebForm と Asp.net MVC (MVC と呼ばれます) ) はどちらも Asp.net に基づく Web 開発フレームワークです。その 1 つは、MVC が http の本質に重点を置いているのに対し、WebForm はこの目的のために http を保護しようとすることです。 Windows フォーム アプリケーションの開発と同じように、イベント モデルに基づいてプログラミングできます。どちらにも独自の長所、短所、適用可能なシナリオがありますが、現在、多くの Asp.net 開発者にとって MVC が最初の選択肢となっています。
WebFormはAsp.netをベースにしているので、これらを利用してWebForm上でMVCのようなフレームワークを書くこともできます。 WebForm というと、多くの人はサーバー コントロール (ドラッグ コントロール!!!) を思い浮かべるでしょう。実際には、サーバー コントロールをまったく使用せず、MVC のような HTML に重点を置くこともできます。 WebForm がサーバー コントロールを放棄して HTML に重点を置きたい場合は、まず
タグを削除する必要があります。この runat サーバー フォームは PostBack メカニズムの基礎です。 html+css+js に戻るということは、Ajax リクエストの処理など、多くのことを自分で実装する必要があることを意味します。 MVC とは異なり、WebForm の初期設計ではサーバー コントロールをメイン コンポーネントとして使用します。これを使用しない場合は、その拡張性を利用するしかありません。このシリーズは、WebFormプラットフォームに基づいて軽量のajaxコンポーネントを実装するもので、主に3つのパートに分かれています:
1. WebFormでのさまざまな実装方法を紹介します。
2. ajaxpro コンポーネントを分析します。
3. 独自の ajax コンポーネントを作成します。
1. Ajax の概要
非同期を使用すると、ページ全体を更新せずにサーバーにデータをリクエストまたは送信できます。複雑なページの場合、少量のデータをリクエストするためにページ全体をリロードするのは明らかに非効率です。Ajax はこの問題を解決するように設計されています。 ajax の中核は XmlHttpRequest オブジェクトで、これを通じてリクエストがテキスト形式でサーバーに送信されます。 XmlHttpRequest2.0以降はバイナリデータの送信もサポートされています。
Ajax セキュリティ: セキュリティ上の理由から、Ajax は同一オリジン ポリシーによって制限されています。つまり、同じドメインと同じポートからのリクエストのみにアクセスでき、クロスドメイン リクエストは拒否されます。もちろん、要件によっては、ドメイン間でリクエストを送信する必要がある場合があります。一般的に使用されるクロスドメイン処理方法には、CORS (クロスドメイン リソース共有) や JSONP (パラメトリック JSON) があります。
Ajaxデータ対話形式: AjaxコアオブジェクトXmlHttpRequestには「XML」という言葉がありますが、クライアントとサーバー間のデータ交換形式はxmlに限定されません。たとえば、現在ではjson形式が使用されることが多くなっています。
Ajax にも欠点があります。たとえば、検索エンジンのサポートはあまり優れていません。URL リソースの配置の本来の目的に反する場合があります。
2. Asp.net MVC プラットフォームでの ajax の使用
MVC では、Ajax がバックグラウンド メソッドを呼び出すのに非常に便利です。アクションの名前を指定するだけです。
フロントエンドコード:
<body> <h1>index</h1> <input type="button" value="GetData" onclick="getData()" /> <span id="result"></span> </body> <script type="text/javascript"> function getData() { $.get("GetData", function (data) { $("#result").text(data); }); } </script>
バックエンドコード:
public class AjaxController : Controller { public ActionResult GetData() { if(Request.IsAjaxRequest()) { return Content("data"); } return View(); } }
3. WebFormプラットフォームでのajaxの使用
3.1 サーバーベース制御パッケージまたはサード- partyコンポーネント
これは、ajaxツールキットなどのサーバーコントロール、またはFineUIなどのコンポーネントに基づいています。 Web フロントエンドは常に html+css+js で構成されますが、問題はそれをどのように生成するかです。ネイティブ プラグインを自分で作成することも、いくつかのフロントエンド プラグインを使用することもできますが、サーバー コントロールに基づくプラグインはバックグラウンドで生成されるため、通常は効率が低くなります。サーバー コンポーネントはフォアグラウンドで一連のプロキシを生成しますが、本質は同じですが、コントロールはこのプロセスをカプセル化するため、自分で記述する必要はありません。コントロールまたはサードパーティ コンポーネントに基づくモデルは、訪問数がそれほど多くないため、短期間で開発できるため、一部の管理システムでは非常に役立ちます。
3.2 ICallbackEventHandlerインターフェースに基づく
.netは、コールバックリクエストを処理するためのICallbackEventHandlerインターフェースを提供します。このインターフェイスは、ClientScriptManager を使用してリクエストを送受信するためのプロキシ スクリプトをフォアグラウンドで生成する必要があるため、