c# - ASP.NET 模板

标签 c# asp.net algorithm templates caching

我们正在使用自定义 HttpModule 构建一个文本模板引擎,该引擎用 XML 文件中的整个文本部分替换 HTML 中的标签。

目前,XML 文件作为字符串/字符串字典加载到内存中,以便可以使用正则表达式非常快速地执行 HttpModule 完成的查找/替换。

我们希望扩大它的使用范围,以合并越来越大的替换文本部分,并且我担心将更详细的文本作为字典的一部分一次保留在内存中,特别是当我们使用 ASP 时。 NET 缓存也有多种用途。

有人对我们可以使用的更高效、可扩展的数据结构/管理策略有建议吗?

更新:针对下面 Corbin March 的伟大建议,我不认为这是我们走上“黑暗之路”的情况(尽管我很欣赏这种担忧)。我们的应用程序旨在针对不同的客户进行完全重新设计,甚至包括页面上任何位置的文本 - 包括使用多种语言的能力。事实证明,我所描述的技术是处理此问题的最灵活的方法。

最佳答案

您使用的内存量将与文件的大小大致相同。 XML 在标签中会产生一些字典不会产生的开销,因此它是对内存需求的安全估计。那么您说的是 10-50 MB 还是 100-500 MB?我不一定担心 10 到 50 MB。

如果您担心,那么您需要考虑是否真的需要在每次加载页面时进行替换。您能否承受每页访问一次数据库或 XML 文件,然后缓存 ASP.NET 页面的输出并将其保留一个小时?如果是这样,请考虑使用 Page Caching .

关于c# - ASP.NET 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/277875/

相关文章:

Python数线簇练习

c# - 在 Windows Phone 8.1 中的单独文本 block 上检索 PHP 数据

jquery - 使用 jQuery 启用/禁用 .NET 4.0 按钮

javascript - 使用客户端页面上的信息从外部填充数据库

algorithm - 使用单个旋转 kinect 的房间的 360 度 3D View

python - 最大小费计算器 - 天真的解决方案

c# - 如何通过 HTTP 将连续的 XML 流读入 XElement

C# 使用子类参数覆盖方法

c# - 如何在 .net (c#) 中为可安全存储在数据库中的字符串创建 HashCode?

c# - 使用数据库而不是内存存储身份服务器 4