私はすでに数週間迷惑をかけています。つまり、私はJava EE EJB3バックエンド・ビジネス・エンジンを持っています。これは、コントローラー・サーブレットによって呼び出され、データベースからクライアントに特定のデータを戻します。今、クライアントでは、かなり大量のデータを取り込む必要があるjqGridがあります。チャンク内でクライアントに渡すのに十分な大きさです。私が把握できないのは、ビジネスエンジンから返されたすべての結果を格納する場所なので、結果をスクロールするときに新しいページのデータを要求することができます。それを別のサーブレットに転送するか、それをテーブルから呼び出すか、それを現在の状態を保持し、コントローラサーブレットを呼び出さずにテーブルに返すステートフルセッションBeanに送信しますか?EJB3バックエンドからサーブレットとAJAXを通じてjQueryテーブルにデータを返す
これが私の最終年度プロジェクトの進捗に役立つので、助力をいただければ幸いです。
よろしく
ルーカス
ありがとうございます。最初のソリューションにパフォーマンスの問題はありませんか?データベースへの呼び出しがたくさんあるためです。私はビジネスエンジンへの呼び出し回数を1つに減らし、クライアントからサーブレットへの多数の小さな呼び出しを実行しようとしました。これらの結果をサーブレットに格納することはできませんか? – lukethepole
それは異なります。テーブルのサイズが大きく、その最初の結果が面白い(Googleの結果と考える)場合、ユーザーが次のものをロードしたくないという非常に良い機会があります。時間と記憶の浪費。クエリがテーブルのすべての行のIDをロードし、各チャンク要求がIDのサブセットに対応するデータをロードする中間的なアプローチも使用することに注意してください。したがって、そのようなチャンク要求は非常に高速であり、メモリ消費は妥当なままである。 –
私のアプリケーションに関して言えば、そうではありません。ユーザーはすべての結果をスクロールして1つのクエリで50または100の結果が得られ、別のクエリでは1000が返されることを望みます。結果をチャンクまたはページに分割できるビジネスエンジンからCachedRowSetを返します。私はステートフルセッションBeanオプションを使うつもりだと思います。このオプションには、すべての結果を注入してからサーブレットのビットごとに結果を照会します。 – lukethepole