1

私のアプリケーションでは、ユーザーが UI を介して新しい言語などを編集、削除、インポートできるため、カスタム テーブルに格納されている多言語言語文字列があります。

現在、私がやっていることは、各リクエストの冒頭にあります。現在選択されている言語のすべての言語文字列を (データベースから) 取得し、それらを辞書に貼り付けます。

次に、かみそりビュー (以下を参照) で使用する Html ヘルパー拡張メソッドがあります。これは、ヘルパーで提供されたキーに基づいて正しい言語を引き出すために、要求の最初に取得した辞書を調べます。

Html.LanguageString("MyLanguage.KeyHere")

これで問題なく動作します。ただし、アプリケーションが大きくなるにつれて。ますます多くの言語文字列を取得しています。取得する文字列は約 200 個しかないため、まだ非常に高速であるため、現時点では問題ではありません。

しかし、これは、ページに1つあるとしても、それらすべてを取得していることも意味します. 理想的には、LanguageString("") を事前に処理し、クエリを実行して、リクエストの最初に必要なものを取得する方法が欲しいですか? または、処理してより効率的な呼び出しを生成できる独自の linq ベースの言語かもしれません。

これを行う方法についてのアドバイスを探しています。アプリケーションをできるだけ効率的にしたいので。アドバイス、ヘルプ、ヒントは大歓迎です。ありがとう。

4

1 に答える 1

0

リクエストごとに言語文字列をフェッチするのではなく、アプリケーションごとに言語文字列をキャッシュすることをお勧めします。たとえば、静的辞書を維持し、ユーザーがこれらの文字列を変更した場合にのみキャッシュを無効にすることで、これを行うことができます。これにより、アプリケーションの応答性が向上するだけでなく、このデータをオンデマンドでロードするという、より複雑で必ずしも効率的ではない手法 (私見) を実装する必要がなくなります。

補足として、次のことを追加します。通常、この種の問題が発生した場合は (壊れていないものを修正するのではなく) 対処し、より重要なことに集中することをお勧めします。特定のソリューションのパフォーマンスへの影響を常に考慮に入れる必要があることに完全に同意します。時期尚早の最適化が常に良い考えであるとは限らないと言っているだけです。

于 2013-08-20T06:10:39.473 に答える