3

我正在为我的所有 Umbraco v4 页面使用输出缓存,但希望避免对任何 Ajax 调用进行此类缓存...

我在 default.aspx 中添加了这一行:

<%@OutputCache CacheProfile="umbProfil" %>

然后,在 web.config 中:

<caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="umbProfil" duration="120" enabled="true" varyByHeader="???"
           varyByParam="umbPage" location="ServerAndClient" />
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

现在的问题是所有内容都被缓存了,包括我的 Ajax 调用,这实际上不应该是:它们主要是表单,并且在缓存过期之前使用初始值维护字段条目......

让您知道,这些 Ajax 是“部分视图”,即仅呈现某些表单的 Umbraco 常规页面......

我应该如何设置 varyByHeader 参数,以便实际缓存与 umbPage 相关的所有内容,除了 Ajax GET/POST 调用?

4

1 回答 1

0

由于我在每个表单上都使用了防伪隐藏文本字段,因此我最终将此表单参数用作可变参数。

<add name="umbProfil" duration="120" enabled="true"
               varyByParam="umbPage;__RequestVerificationToken" location="ServerAndClient" />

它似乎运行良好,我的 umbPage 被缓存,而我的表单 POST 没有(或者至少是为每个 POST 和 120 秒创建一个缓存实例)。

如果你们有更好的主意(任何 POST 都没有缓存),请指教。

于 2012-06-20T06:28:04.527 回答