大型XML文件的体系结构和缓存注意事项
我正在建立一个网站来展示产品和产品类别。数据来自外部服务,格式为500k XML文件。该网站是ASP.NET,C# XML的结构是一个类别列表。每个类别内可能有一些产品和/或更多类别 显然,我们不能调用这个外部服务来获取每个页面请求的大XML文件,所以我们每隔几个小时调用一次并缓存它。我需要这样做:大型XML文件的体系结构和缓存注意事项,xml,architecture,caching,data-layers,Xml,Architecture,Caching,Data Layers,我正在建立一个网站来展示产品和产品类别。数据来自外部服务,格式为500k XML文件。该网站是ASP.NET,C# XML的结构是一个类别列表。每个类别内可能有一些产品和/或更多类别 显然,我们不能调用这个外部服务来获取每个页面请求的大XML文件,所以我们每隔几个小时调用一次并缓存它。我需要这样做: 在页面左侧显示产品类别菜单 显示选定类别中的所有产品 显示单个产品的扩展信息 我的问题如下: 首先,在显示“DVD”类别中所有产品的页面上,假设我执行以下操作(页面加载): 通过将类别XML引入
- 在页面左侧显示产品类别菜单
- 显示选定类别中的所有产品
- 显示单个产品的扩展信息
谢谢 我做过类似的事情,我会将缓存逻辑放在数据层中。这将从业务层和表示层中删除所有缓存逻辑 我不熟悉ASP.NET,但我想是的,每个页面请求都会导致单独加载XMl文件
我不会将XML存储在内存中。你应该把你需要的数据存储在内存中。可能有ASP.NET库可用于内存缓存,如Memcached,您可以在其中存储对象的序列化版本。+1。您甚至可以添加另一个抽象级别,使缓存成为缓存的直通,我已经看到了。好处是,缓存传递可以编写为与多个DAL一起使用(用于多个应用程序)。@Joseph:你说的“使缓存成为缓存的传递”是什么意思?你能用一个例子解释一下吗?是否愿意在回顾时回答你自己的问题?:)哪种解决方案最适合您?
XDocument allCategories = Cache["CategoriesXml"];
// loop through the XML and find the DVD category
// Get all products under it, then display them