0

我有一个即将完成的电子商务 MVC4 项目。我将 sqldependecy 与 outputcache 一起使用。但是最好的方法是什么?产品详情页 ? 分类页面有哪些产品列表?过滤页面?呜呜呜

你能帮我缓存一下吗?(我在我的项目中使用带有 linq to sql 的 sql server)示例;

[OutputCache(Duration = Int32.MaxValue, SqlDependency = "Demo:product")]

公共 ActionResult getproducts(int id,int lastid,字符串过滤器){

我使用参数从 sql 获取数据。

}

对吗?还是应该缓存查询数据bla bla?lastid 用于分页。过滤数据的过滤参数。id 表示类别id

4

1 回答 1

0

让我们从头开始:我假设您想要优化您的网上商店,这就是您需要一些缓存机制的原因。您选择使用 OutputCache 可能是因为它易于使用且开箱即用。正如您可能知道的,OutputCache 缓存来自服务器的响应,因此它不直接与缓存 sql 查询或一般数据相关联。因此,我首先建议您考虑一下您真正需要哪种类型的缓存 - 输出缓存(位于 System.Web.Configuration.OutputCacheSection 中)、数据缓存(位于 System.Web.Caching.Cache 中)或两者兼而有之?

假设您选择了 OutputCache。您需要确保可以更改服务器响应的所有内容都应作为缓存参数发送。因此,对于产品页面,这可能至少是一个 ProductId,对于 CategoryPage (ProductListPage),这可能是 CategoryId、PageId、PageSize、一些排序参数、过滤器参数(如果您使用过滤器)等。

您需要考虑的参数越多,缓存所有可能的参数组合就越耗时。例如,我将 OutputCaching 用于产品页面,但我会考虑将其用于 CategoryPage (ProductListPage),尤其是在使用过滤器、分页、排序等的情况下。

于 2014-01-23T15:13:15.217 回答