gpt4 book ai didi

javascript - ASP NET Core - 以编程方式清除 ResponseCache

转载 作者:行者123 更新时间:2023-12-02 22:07:06 25 4
gpt4 key购买 nike

我有一个 Controller 操作,它呈现一个部分 View ,该 View 从数据库异步获取一些数据。假设这些是菜单项。

 [Route("SomeData")]
[ResponseCache(Duration = 1000 * 60 * 60)]
public IActionResult SomeData()
{
//returns a partial view for my ajax call
}

数据不会经常更改,但用户可能会执行某些操作,并且知道应该会导致该部分 View 发生更改,即应该出现新的菜单项。

但是,使用缓存响应时,不会从数据库加载数据。我想在页面上添加一个“刷新”按钮,以便用户可以显式清除所有缓存。

我尝试使用 javascript 来执行 window.reload(true); 以及此回复 https://stackoverflow.com/a/55327928/2892378 ,但这两种情况都不起作用。

我需要与在 Chrome 中单击 Ctrl + 刷新按钮相同的行为。

干杯

最佳答案

它通过响应中的 header 缓存在客户端上,您无法“清除”它。作为解决方法,您可以首先在客户端设置一个合适的响应缓存最大年龄,然后使用 VaryByHeaderVaryByQueryKeys ,每次您想要刷新缓存时,您应该为您的 header /查询字符串提供不同的值:

https://learn.microsoft.com/en-us/aspnet/core/performance/caching/middleware?view=aspnetcore-3.1

关于javascript - ASP NET Core - 以编程方式清除 ResponseCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59685230/

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