2011-08-01 8 views
0

おはよう、Webクライアントのイベント処理の設計

これはプログラミングの質問よりも多くのWebサービスの設計です。私は達成したいことを説明しようとします。例では、3つのコンボボックス(例えば、サイズ、色、テクスチャ)がページ上にあり、お互いに依存しています。順番にしか選択できません(例:1位→2位→3位)。コンボボックスの値を選択すると、次のコンボボックスにデータが入力され+有効になり、そこから選択することもできます。

私はこの問題に適用できるいくつかの解決策を思いつきました。

  1. 私たちがこのページに来ると、JavaScriptが読み込まれて、それらのコンボボックスにデータを入れるためのデータを要求するポストが送信されます。返される応答は、すべてのバリアント(JSON)のバッチデータが解析され、クライアントが選択するたびにJavaScriptによって処理されます。
  2. ページには最初のコンボボックスのみが読み込まれ、残りのページにはデフォルト値が入力されます。クライアントが値を選択するたびに、選択に応じて次のコンボボックスを塗りつぶしたり処理したりするのに適切なイベント(POST getにつながるajax)が起動されます。

私自身は非常に複雑であり、値ごとに選択のバリエーションがたくさんある場合、バッチ値は非常に大きくなることがあります。そして、第2のものは、サーバーへの無駄な要求が多すぎると思われますが、サーバーの過負荷につながる可能性があります。これらのソリューションについてどう思いますか?そのコンセプトはおかしいですか? 2番目のソリューションではなく、最初のソリューションを実装する価値がありますか? 私の説明で理解できないことがある場合は、私は詳細に説明しようとします。

答えて

2

私はすべてをプリフェッチすることはスケーラブルな解決策ではないことに同意します。ある時点では、不当な量のデータを取得する可能性があります。

データを徐々に取得する2番目のソリューションは、私の経験では最も一般的です。私は、「無駄な要求」によって、ユーザーがバックトラックして再選択した場合に同じデータを繰り返しフェッチすることに懸念していると思います。

私はその動作を最適化するためにさまざまなキャッシュテクニックを使用しているという問題に対処しました。

私は、一連のドロップダウンボックスが最高のUIではないかもしれないと言います。いくつかのフレームワーク(例えばdojo)には、ディレクトリ構造をナビゲートするために使うようなツリーウィジェットがあります。私はあなたがアプローチが良く見えるかもしれないと思うかもしれないと思います、そして3つのレベルの階層以上にうまく拡張可能です。

+0

+1 - 複数のドロップダウンを防衛するには、多くのユーザーにとっては仕事の仕方がわかっていると思いますが、使いやすさの専門家が何を考えているのか聞いてみてください。 –

+0

あなたの答えをありがとう! – faya