ASP.NETアプリケーションに取り組んでいます。国リストのドロップダウンを表示する3〜4つのフォームがあります。ここでは、データベースからデータを取得することにより、これらのドロップダウンを毎回バインドすることを避けたいと思います。代わりに、アプリケーションのロードなどで、一度バインドするより良い方法を探します。
どうすればこれに取り組むことができるか教えていただけますか?どんな参照リンクやドキュメントも素晴らしいでしょう。
どうもありがとう、よろしく、ナニ
ドロップダウンをユーザー コントロールに配置し、ユーザー コントロールで出力キャッシュを有効にします。
このソリューションにより、レンダリングされた HTML がキャッシュされるため、すべてのページ要求でデータバインディングを呼び出す必要がなくなります。
もう 1 つの可能性は、BL ロジックでキャッシュ メカニズムを使用することです。たとえば、ページ/ユーザーコントロールで使用できます(構文を厳密に取りすぎないでください;))
パブリック部分クラス MyPaged: ページ {
public void PageLoad(..) {
if(!IsPostBack)
{
dropDownCountries.DataSource = CountryBL.GetCountries();
dropDownCountries.DataBind();
}
...
}
}
ビジネスロジッククラスでは、国を保持し、キャッシュとして機能するシングルトンクラスがある場合に、ある種のキャッシングを行います。疑似コードメソッドは
public IList<Country> GetCountries
{
//if the cache is empty or it should be refreshed, fills the local
//list of countries, i.e. the cache, with fresh entries from the DB
//there could be some time condition, i.e. refresh every day or so
EnsureCacheValid();
return CachedCountries; //the cache of countries
}
これは、プレゼンテーション ロジックがキャッシュについても認識しないという利点を持つ別のオプションになる可能性があります。また、Web サービス アクセスなどを追加する場合は、キャッシュの恩恵を受けることもできます。あなたが注意を払わなければならない唯一のことは、ユーザーが国を変更できる可能性があるかどうかです(あなたの例ではそうではありません)。