gpt4 book ai didi

c# - 输出缓存不适用于 AJAX varyByParam

转载 作者:行者123 更新时间:2023-11-30 17:51:41 24 4
gpt4 key购买 nike

我有一个 WCF Web 服务的端点,它没有在 AJAX 请求的性能监视器中获取输出缓存命中,它确实为端点的 AJAX 请求获取输出缓存。

网络配置:

<caching>
<outputCacheSettings >
<outputCacheProfiles>
<add location="Any" name="myCache" duration="3600" varyByParam="*" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>

配置中是否缺少我的选项?我没有包含 Javascript,因为我怀疑问题出在那里,因为服务器不必检查任何 header 来确定缓存值(value)。

端点:

[AspNetCacheProfileAttribute("myCache")]
[WebGet(ResponseFormat= WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "suburb?name={name}&state={state}&category={category}&bedrooms={bedrooms}&country={country}")]

最佳答案

当您进行 ajax 调用时,您可能会将其作为缓存传递:false。

当您这样调用时,ajax 调用将传递带有额外参数的 URL,值将是一个随机的唯一数字。由于 asp.net 方法接收此额外参数并且您使用 varyByParam="*" 配置输出缓存,因此此方法永远不会缓存。解决方案是

  1. 在 ajax 调用中设置 cache: true -(当您调用动态方法时不好)或
  2. 设置输出缓存 varyByParam="none"(仅当您的方法需要缓存而不考虑参数时使用)或
  3. 设置输出缓存 varyByParam="parameter1;parameter2"(如果您有多个参数,这是理想的解决方案)。对于单个参数使用varyByParam="parameter1"

抱歉回复晚了。我刚刚看到这个问题。

关于c# - 输出缓存不适用于 AJAX varyByParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19131700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com