问题标签 [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 投票
2 回答
3500 浏览

asp.net-mvc - 我可以在 ASP.NET MVC 中使用 [CompressFilter] 而不破坏甜甜圈缓存吗

我正在尝试让 [ CompressFilter ] 使用甜甜圈缓存并遇到问题。

发生的事情是整个页面被缓存,而不仅仅是甜甜圈。CompressFilter我正在使用的来源如下。我将其从原始源更改为使用OnResultExecuted,而不是OnActionExecuting()因为我需要访问结果的类型以避免缓存某些 ActionResult 子类。

查看实际的 MVC v1 源代码,OutputCacheAttribute它看起来也正在使用OnResultExecuted(),但我不认为这个事实直接导致了冲突。

我对替换缓存的工作原理知之甚少,无法完全理解它为什么会这样。我认为值得注意的是,这最终不会导致任何损坏的显示。它的行为就像没有甜甜圈一样!

看起来我将不得不使用某种 IIs“插件”来处理缓存,我真的很想避免这样做,但看起来我也需要甜甜圈缓存。

我现在实际上更感兴趣的是知道它为什么会产生这种效果,但如果可能的话,一个解决方案也会很棒。

0 投票
4 回答
1451 浏览

asp.net-mvc - 我如何在 ASP.NET MVC 中“甜甜圈缓存”而不是日期

我见过的所有甜甜圈缓存的例子都是这样的:

如果我只想要日期,那很好,但还有其他选择吗?

我知道有一个代表“MvcSubstitutionCallback”,其签名如下:

但是RenderActionRenderPartial返回 void 所以我不能只从委托方法中返回它们。我怎样才能有效地使用这个回调来处理更复杂的情况。

我在这里这里查看了 Phil Haacked 的两篇文章,但似乎都没有完全符合我的要求。

0 投票
0 回答
1140 浏览

asp.net-mvc - 如何在 Site.Master 上缓存部分视图?

我正在尝试在 Site.Master 页面上对用户登录和购物车等内容使用甜甜圈缓存,以便我们可以将 OutputCache 放在应用程序中一些资源密集型页面上。

目前,我正在使用标签,然后在后面的代码中从静态方法中写出 html。

我宁愿将 html 代码放在部分视图 (.ascx) 中并将其呈现为字符串,因为我真的不喜欢将 javascript 使用的特定 html 元素隐藏在编译代码中。

我看过这篇文章,看起来这是一个有效的想法,可以修改为将部分渲染为字符串: 通过控制器渲染部分

有没有更简洁的方法可以将部分渲染到字符串而无需通过控制器?

0 投票
4 回答
2031 浏览

asp.net - 甜甜圈缓存教程

有人可以指出几个用于甜甜圈缓存的优质教程/页面吗?就像网络上的其他东西一样,你可以用谷歌搜索一百万个东西,但我发现的几篇文章有点令人困惑。

我在找

  1. 什么是甜甜圈缓存
  2. 你应该什么时候使用它
  3. 你如何在 ASP.net 中实现
0 投票
2 回答
796 浏览

c# - 有没有办法从替换控件中访问当前会话?

一旦页面被缓存输出,看起来 asp:net 替换控制方法的上下文参数缺少当前会话。

除了通过 ajax 获取替换控件的内容或使用其他方法来存储原本会在会话中的数据(如数据库)之外,我还能做些什么吗?

是否有在替换控制中使用本机 asp.net 会话的解决方法?

[1] --- 页面缓存后conext.session为空

0 投票
2 回答
1076 浏览

c# - ASP .NET - 替换和页面输出(甜甜圈)缓存 - 如何将自定义参数传递给 HttpResponseSubstitutionCallback 委托

我想使用甜甜圈缓存的替换功能。

...

...但是我想将附加参数传递给 HttpContext 旁边的回调函数。
所以问题是:
如何将附加参数传递给 GetTime 回调?
例如,像这样:

0 投票
2 回答
527 浏览

asp.net - ASP.NET“甜甜圈缓存”不起作用

我有一个 ASP.NET 页面,我试图在其中进行一些输出缓存,但遇到了问题。我的 ASPX 页面有

我在 ASPX 页面中有一个名为“PageHeader”的用户控件。在PageHeader.ascx中,我有一个 ASP.NETSubstitution控件,我想在其中显示一些基于登录用户的链接。

在我的用户控件代码隐藏中,我有一个静态方法,它将根据使用的是否登录或不使用会话返回一个字符串:

但是该页面仍然为登录用户和访客用户显示相同的内容。

我的目标是让页面被缓存,除了替换控件中的内容。我该怎么做呢?

0 投票
2 回答
4934 浏览

asp.net - ASP.NET MVC 2 在部分视图中禁用浏览器后退按钮的缓存

Html.RenderAction<CartController>(c => c.Show());在我的主页上使用来显示所有页面的购物车。问题是当我将一个项目添加到购物车然后点击浏览器后退按钮时。它显示旧购物车(来自缓存),直到我点击刷新按钮或导航到另一个页面。

我已经尝试过,它工作得很好,但是它会为整个页面和我网站中的所有页面全局禁用缓存(因为在母版页上使用了这个 Action 方法)。出于性能原因,我需要为其他几个部分视图(操作方法)启用缓存。

我不想使用带有 AJAX 的客户端脚本在页面加载时刷新购物车(和登录视图)——但这是我现在能想到的唯一解决方案。

有没有人更了解?

0 投票
3 回答
4913 浏览

asp.net - 如何在 Substitution 控件中使用 ASP.Net 服务器控件?

而我们在 Substitution 控件中使用的方法应该返回字符串,那么如何在应该呈现服务器端的服务器控件上使用 web 表单中的甜甜圈缓存呢?
例如 Loginview 控件?

0 投票
1 回答
2086 浏览

asp.net - 在用户控件中关闭页面级缓存

我有一个定义了以下缓存的页面:

我在该页面中有一个我不想缓存的用户控件。我怎样才能关闭它只是为了那个控制?