0

そのため、CQ5 (OSGi、Sling、JCR コンテンツ リポジトリに基づく Java の CMS) を使用して Web コンポーネントを開発する必要があります。

このコンポーネントは次のことを行う必要があります: ユーザーからの 3 つの質問に対する回答を収集し、ユーザーの回答に基づいて、データベースからの回答がユーザーに提供されます (計算機と言えます)。

最初の質問には 5 つの回答のバリエーションがあり、2 番目の質問には 5 つのバリエーションがあり、3 番目の質問にも 5 つのバリエーションがあります。

しかし、問題は、ユーザーが最初の質問に対する回答としてオプション 1 を選択した場合、2 番目の質問の可能な回答の数が減少し、可能な回答が 3 つしか残らないことです。

たとえば、あるユーザーが次のような質問をしたとします。あなたはどの国の出身ですか? あなたはどの州の出身ですか?どの市(街)出身なの?

ユーザーが最初の質問にカナダと回答すると、2 番目の質問の回答としてカナダの州のみを選択できるようになります。

そのため、ユーザーがフォームを変更した場合、フォーム内のデータは ajax を介して更新する必要があります。

したがって、問題は、データベースからすべてのデータを一度に取得する方が良いか (ご覧のようにそれほど多くはありません)、それとも「フォーム変更イベント」ごとにデータベースに要求を行う方が良いかということです。 ? それとも、それは何の違いもありませんか?

私の見解では、2 番目のバリアントは、記述する必要があるコードの量の観点からは優れていますが、パフォーマンスの観点からはどちらが優れているのでしょうか?

4

2 に答える 2

3

時期尚早の最適化は避けるべきです。複数のリクエストのアプローチを使用します。あなたが言ったように、それはアプリケーションをよりきれいにします。次に、遅すぎることが判明した場合にのみ、そのデータのキャッシングまたはフロントローディングを検討できます。

時期尚早の最適化については多くの議論があります - 一般的な意見は、それが必要であることが証明されるまで避けるべきです!

于 2013-01-25T09:06:20.893 に答える
1

いつものように:「場合によります」。州の例では、北米に限定されている場合、すべての州をプリロードすると便利な場合があります。国のリストが大きくなり、それに伴って州の数が増えるとonChange、基礎となるデータ ストレージから必要な州のみをフェッチする方がよい場合があります。

私はまた、この選択を数に応じて行います

  1. ユーザーが選択できる可能性 (数か国のみ、または世界の約 200 か国すべて?)
  2. 2 番目の選択ボックス内のアイテムの量
  3. ユーザーが 2 番目の選択ボックスで一致しないアイテムを表示できるようにする必要がある場合 (アイテムがクライアント側でのみ削除され、AJAX を使用せず、単純な JS のみが削除された場合のように)
  4. 必要なパフォーマンス (2 番目のボックスの可能性を 2 番目の遅延でロードしても問題ありませんか、それともほぼ瞬時である必要がありますか?)

通常、これらのポイントを評価することで、適切な経験則が得られます。3*5 の可能性がある実際のケースでは、データベースからすべての可能性をプリロードし、プログラム コードでフィルタリングを行うのが合理的な選択のようです。

于 2013-01-25T09:05:37.757 に答える