问题标签 [donut-caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
127 浏览

asp.net-mvc - 最佳MVC视图在大量数据(视图)中的缓存策略(OutputCache Policy)

我正在使用 DonuteCache(DonutOutputCache 属性比默认的 MVC OutputCache 属性更好、更优化)。我通常通过一个或多个参数缓存我的视图,所以如果参数变化如此之大,我会有很多视图要缓存。

在我的例子中,我有一个产品表,它有大约300,000 行和一个视图,负责按 id 显示产品的规格。我的问题是,在大量数据中,将数据缓存到内存中变得非常有问题,我计算了内存中单个缓存产品视图的平均大小,大约为 300 KB,因此300 kb 乘以 300,000大约等于9 GB。这是不可能将这么多数据缓存到内存中的。我们已经有数据缓存,但我们也希望有视图缓存

你认为缓存这么多视图的最佳和最优化的策略是什么?我在考虑分布式缓存策略(我们也有它,我们使用 NCache 来缓存我们的数据(不是视图))

提前致谢

0 投票
2 回答
259 浏览

c# - 使用自定义 Redis 输出缓存提供程序时,MVCDonutCaching 失败

我有以下自定义 Redis 输出缓存:

在 web.config 中设置:

当我使用 outputcache 属性时,这一切都很好:

但是,我正在尝试使用MVCDonutCaching Nuget 包实现 DonutCaching,并且当我将属性更改为

它失败并出现以下错误:

无法实例化和初始化“xxx.xxx.Web.Caching.CustomRedisOutputCache”类型的 OutputCacheProvider。确保您指定了完整的类型名称。

根据文档,我应该能够使用自定义缓存提供程序,那么有人知道问题出在哪里吗?

查看源代码,这里似乎失败了:

上述课程的完整来源

更新

Type.GetType(providerSettings.Type)下载并单步执行源代码后,即使providerSettings.Type是 xxx.xxx.Web.Caching.CustomRedisOutputCache 并且该类存在于正在执行的项目 xxx.xxx.Web 中,它似乎也会返回 null

0 投票
1 回答
33 浏览

javascript - 基于html标签/其他无ASP的选择性浏览器缓存(即甜甜圈)?

  • 假设我没有使用任何库或框架,只使用每个现代浏览器都提供给我的普通 HTML5、CSS3 和 ES6。

  • 是否有类似于 ASP 的甜甜圈洞缓存的东西,我可以指示客户端的浏览器不要在页面中缓存特定的 html?

  • 抱歉,如果这被视为重复,但我已经在这里和其他地方搜索过这个非常具体的问题没有任何结果。

  • 假设我有一个 Web 表单,它生成用于验证表单提交的随机 ID。每次更改表单结构时都会更改此 ID。

  • 已经访问过此页面的客户端可能会使用较旧的缓存 ID 加载 Web 表单,这会在提交时触发验证错误。

  • 我知道对于图像,我可以通过在其网址中添加随机查询字符串来做到这一点。

  • 我宁愿告诉浏览器不要缓存这部分 html 或基于元素的类或 ID 或其他,这可能吗?

0 投票
0 回答
12 浏览

.net - 在 asp.net mvc 中缓存部分,除了需要使用 outputcache 动态的部分

有没有办法缓存html,除了Request.Url.AbsolutePath部分?该部分需要是动态的,因为它使用请求 url。现在它缓存了第一个命中并使用第一个 url。