1

在我的应用程序中,我们有存储在自定义表中的多语言语言字符串,因为用户可以通过 UI 编辑、删除、导入新语言等...

目前,我正在做的是在每个请求的开头。我要去获取当前所选语言的所有语言字符串(来自我们的数据库)并将它们粘贴在字典中。

然后,我有一个 Html Helper 扩展方法,我在剃刀视图中使用它(见下文),它在我在请求开始时得到的字典中找到,以根据助手中提供的键提取正确的语言。

Html.LanguageString("MyLanguage.KeyHere")

现在这工作正常。但是,随着应用程序越来越大。我们得到越来越多的语言字符串。现在这不是问题,因为它仍然非常快,因为只有大约 200 个字符串可以获取。

但这也意味着我得到了所有这些,即使页面上有一个。理想情况下,我想要一种事先处理 LanguageString("") 并进行查询以获取请求开始时所需的方法?或者也许我自己的基于 linq 的语言可以被处理并产生更有效的调用。

我正在寻找一些关于如何做到这一点的建议。因为我希望应用程序尽可能高效。任何建议、帮助、提示都会受到极大的欢迎。谢谢。

4

1 回答 1

0

我建议在应用程序的基础上缓存语言字符串,而不是为每个请求获取它们。例如,这可以通过维护静态字典并仅在用户对这些字符串进行更改时使缓存无效来实现。这将使您的应用程序更具响应性,并使您免于实施(恕我直言)更复杂且不一定有效的按需加载此数据的技术。

作为旁注,我要添加以下内容:通常在出现此类问题时解决它们(而不是修复未损坏的问题)并专注于更重要的事情是一种好习惯。我完全同意必须始终考虑给定解决方案的性能影响,我只是说过早的优化并不总是一个好主意。

于 2013-08-20T06:10:39.473 回答