0

これは設計上の問題です。皆さんがこれで私を助けてくれることを願っています。

オートコンプリート コントロールを開発しています。これは基本的にサービス ベースのコントロールであり、サービス コールの役割は、ユーザーがいくつかの単語を入力したときに候補リスト (ドロップダウン メニュー) の HTML を取得することです。

サーバー側のコードは C# で、クライアント側は JQuery/Javascript です。

コントロールは、次の 2 つのモードを使用するように開発されました。

  1. ASP.NET コントロール (生成された応答で jQuery ウィジェットを初期化します)。

  2. サーバー側の HTML 生成エンジンを使用するスタンドアロンの jQuery ウィジェット。

サジェスチョンメニュー(ドロップダウンメニュー)のHTML生成エンジンをサーバーに置いています。コントロール ユーザーは、データソースをサーバーにキャッシュすることを選択できます。キャッシングが有効になっていない場合、データソースは、HTML 生成のために各サービス要求でサーバーに送信されます。

私の質問は - クライアント側 (JQuery/Javascript) にも HTML 生成エンジンを作成する必要がありますか?

これまでのところ、「別のクライアント側 HTML エンジンを作成する」ことの長所と短所を次のように発見しました。

長所:

  1. サーバーへのリクエストが回避されるため、提案リストのサイズが小さい場合から平均的な場合の HTML 生成が高速化されます。

  2. サーバー側の依存関係はありません。サーバー側のコードは必要ないため、jQuery ウィジェット モードは完全にスタンドアロンになります。

短所:

  1. コードの重複: C# と jQuery/javascript の両方で同じ生成エンジン。

  2. メンテナンスの増加 : 新しい機能が追加されると、両側で変更を行う必要があります。

4

1 に答える 1

1

クライアント側で必要なすべての動的 html を生成します。これははるかに高速です。

サーバーまたは Web サービスは、一連の結果 (JSON) を返すことができます。それを使用して、JavaScript で結果ビューを作成および表示します。

asp.net コントロールもデータを JSON としてレンダリングし、クライアント側で JavaScript を使用して必要に応じて表示します。

コントロールによってレンダリングされているか、サービスから取得されているかに関係なく、データをhtmlで使用する場合、コードの重複とメンテナンスの増加という短所は発生しません。

于 2013-02-02T08:14:23.653 に答える