0

ユーザーから入力を受け取るWebアプリケーションがあり、ユーザーが送信ボタンをクリックすると、データベースが照会され、結果がhtmlページに表示されます。ここで、以前に送信ボタンをクリックした後に表示された結果(最新の結果)を表示する必要があるページ(ユーザーが詳細を入力するjspページ)にリンクがあるという新しい要件がありますが、データベースに再度クエリを実行しないでください。例はそれを明確にする必要があります

ユーザーがページに詳細を入力し、初めて [送信] をクリックしたとします。表示される結果は、「APPLE」と言います。ここで、同じユーザーが戻ってきて、詳細を入力した同じページのリンク (「詳細」など) をクリックします。その間、データベースの値はMANGOに変更されました。これで、ユーザーがこの詳細リンクをクリックすると、結果ページに MANGO ではなく APPLE が表示されます (MANGO は、ユーザーが「詳細」リンクをクリックするのではなく、送信ボタンをクリックすると表示されます)。

これを達成する方法は?スクリーンスクレイピングソリューションを使用したくありません。より良いアプローチはありますか??

4

3 に答える 3

0

ユーザーがボタンを送信すると、ページを簡単にキャッシュできると思います。ユーザーがリンクをクリックすると、ページのキャッシュされたバージョンが表示されます。彼がもう一度送信をクリックすると、古いキャッシュがクリアされ、新しいキャッシュが生成されます。古いリンクはキャッシュファイルを指しているので、すべて問題ありません。

于 2012-07-09T11:49:27.197 に答える
0

現在のデータを表示する代わりに古いデータを表示することは非常に奇妙な要件ですが、本当にこれを行いたい場合は、最初のクエリの結果をセッションに保存し、セッションから詳細を取得する代わりに、セッションから詳細を取得することができます。データベース。

または、最初のクエリの結果をデータベース テーブルに格納し、「実際の」データベース テーブルからではなく、このデータベース テーブルから詳細を取得することもできます。

于 2012-07-09T10:33:02.720 に答える
0

次の 2 つの方法があります。

  • 詳細をクライアント側に保存する

最初のリクエスト時に AJAX を使用し、詳細をクライアント側に保存します。詳細は後でいつでも使用できます。

  • 詳細をサーバー側に保存する

最初のリクエスト中に、詳細をユーザー セッションに保存し、必要なときにいつでもフェッチします。

于 2012-07-09T10:33:32.873 に答える