2

製品のリストを返すWebアプリケーションを作成しました。このページでは、ユーザーがさまざまな検索条件を検索できるようにします。

ユーザーが検索して結果がページのテーブルに返されると、ユーザーは商品を編集できます。ただし、商品リストページに戻ると、ページがリロードされ、すべての商品が再び表示されます。

検索結果を保持するための最善の方法を知りたいのですが、検索ページに戻ると、以前の基準が保持されます。

スタック交換に関するいくつかの投稿を見つけました-以前の検索条件をASP.NETに保存するための最良の方法-はおそらくより良いものの1つです。

検索条件を維持する方法を知っている人はいますか?ユーザーが検索ページに戻っても、以前の検索条件と結果は同じままです。

どうもありがとう。

4

1 に答える 1

1

検索全体をクエリ文字列で表すことができる場合は、そのクエリ文字列(または検索条件)をCookieに保存するのが理にかなっています。もちろん、Cookieがオンになっていると仮定します。

ユーザーが検索ページに移動すると、Cookieからクエリ文字列を読み取り、関連する結果を返すことができます。

クライアント側の状態は、負荷の高いシステムで前進するための良い方法です。同時ユーザーが数百人いる場合は、サーバーに状態を保存する必要はありません。

編集

OK、セッションに結果を保存することにしたとしましょう。それの問題は何ですか?結果は関連性がなくなる可能性があります。基になるデータストアで何かが変更され、不正確なデータが表示される可能性があります。

かなり大きな結果セットをメモリに保存することになったとします-ユーザーあたり100kb。同時ユーザーが200人いるとすると、すでに最低100kb * 200を見ています。これは、セッションに保存する可能性のある他のデータを除いて、20MB未満のストレージです。システムが成長するにつれて、拡張するのに費用がかかります。

一方、検索条件をクライアントに保存すると、数千人のユーザーに簡単にスケールアップできます。あなたがしなければならないのは、クッキーから検索条件を取得して再実行することだけです。

私は個人的に、データをセッション状態で保存する非常に良い理由を探します。つまり、ユーザーの機密データを保存します。

この質問に関して-はい、それは機能しますが、すでに述べたように、サーバーに結果を保存することにした場合、それはあまりうまくスケーリングしません。また、アプリケーションプールが再起動されたり、IISが再起動されたりすると、検索条件が失われます。

于 2012-09-11T09:44:46.190 に答える