0

ユーザーがログインするとすべてに表示されるWebアプリケーション(java、tomcat、jsp、oracle dbに基づく)のナビゲーターメニューを作成する必要があります。要点は、接続しているほとんどすべての人が異なる特権を持っているためです。一人一人が異なるナビゲーターメニューを見るでしょう。これは私の最初のWeb開発の1つであるため、クライアントからサーバーへ、またはその逆に物事がどのように伝達されるかという概念にはあまり強くありません。したがって、何をするのが最善かということですが、私の考慮​​事項のいくつかには長所と短所。

  • すべてのリクエストでメニューをロードするためのフィルターを作成します。これは、データベースにクエリを実行しますが、これは、状況が変化する場合がほとんどないため(または、少なくともそれほど頻繁ではないため)、苦痛を伴います。ただし、変更があるとすぐに読み込まれます。
  • iframeを作成してメニューを1回ロードし、これから2番目のiframeを制御します(これは最も推奨されていないと思いますが、それでもオプションであり、何かをクリックするたびにサーバーに同じリクエストを行わないという利点があります)。変更がある場合、リロードすると新しいデータがロードされます。
  • メニューをセッション内のオブジェクトとして保持するようにします。これにより、ユーザーがログインするとデータベースにクエリが実行されます。変更はすべての接続で読み込まれます(またはボタンを作成して再読み込みします)。しかし、このアプローチでは、サーバーのメモリに物事が置かれることになりますが、これは悪い考えの1つだと思います。(私がここで何を言っているのかわからない、私は間違っているのですか?)

私が言ったように、私はこれにあまりにも慣れていないので、私ができることは他に何も知りません。私の知る限り、クライアントにファイル(xmlなど)を書き込むことはできないので、それがメニューのデータソースであり、毎日かそこらで削除します。サーバーにデータを含むファイルを書き込むことができるので、データベースからクエリを実行する必要はありません(ただし、これはサーバーへのリクエストです)が、これにより他の問題が発生し、データの変更が更新されません(もちろん、私はそれに管理するためにより多くの時間とより多くのものを必要とする何かを作ります)そしてこれが単にデータベースにアクセスするよりも速いかどうかはわかりません。

これはどのように最適に実装されますか?開発、保守、パフォーマンス(クリックするたびに同じ情報の要求を減らす)、ユーザーが感じるラグなど、このテーマに関する私の成熟度にはまだ見当たらないコストを考慮してください。ウェブデザインに関する本に関する推奨事項はありますか?

編集: 視覚化にjsTreeを使用し、メニューサブレベルを作成してajaxリクエストにロードすることを計画しています。

4

1 に答える 1