2013-08-20 50 views
1

在我的應用程序中,我們有多語言的語言字符串存儲在自定義表中,因爲用戶可以編輯,刪除,導入新的語言等......通過UI針對多語言語言字符串的預處理MVC Razor文件?

目前,我正在做的是每個請求的開始是。我要離開並獲取當前所選語言的所有語言字符串(來自我們的數據庫),並將它們粘貼到字典中。

然後我有一個Html Helper擴展方法,我在剃刀視圖中使用(請參見下文),該方法在請求開始時根據提供的關鍵字提取正確語言幫手。

Html.LanguageString("MyLanguage.KeyHere") 

現在,這工作正常。但是,隨着應用程序越來越大。我們正在獲得越來越多的語言字符串。這不是一個問題,因爲它仍然非常快,因爲只有大約200個字符串。

但這也意味着我得到了所有這些,即使一個頁面上有一個說明。理想情況下,我最好喜歡一種先處理LanguageString(「」)的方法,然後進行查詢以獲取請求開始時所需的那些內容。或者,也許我自己的LINQ語言可以被處理併產生更高效的通話。

我正在尋找一些關於如何做到這一點的建議。我希望應用程序儘可能高效。任何建議,幫助,提示都很受歡迎。謝謝。

+0

我失去了什麼鏈接與我的問題? – leen3o

回答

0

我建議在應用程序的基礎上緩存語言字符串,而不是爲每個請求提取它們。例如,可以通過維護靜態字典並僅在用戶對這些字符串進行更改時使緩存失效才能完成此操作。這將使您的應用程序更具響應性,並且可以幫助您免於實施(imho)相當複雜且不一定高效的按需加載此數據的技術。

作爲一個附註,我會添加以下內容:在出現這些問題時(而不是修復未破壞的問題)並關注更重要的事情通常是一種很好的做法。我完全同意必須始終考慮給定解決方案的性能影響,我只是說過早優化並不總是一個好主意。

+0

感謝您的評論。我在討論如何加載應用程序啓動和按需更新,如果用戶更改它們。我可能會將此視爲一種選擇。 – leen3o