json - 为什么 FetchData 中的天气样本似乎已缓存到示例 Blazor 应用程序中?

标签 json visual-studio blazor

Visual Studio 中的 Blazor 应用使用 Http.GetFromJsonAsync 调用从 wwwroot 中的 json 文件获取天气预报数据。

当我更改文件中的数据时,我仍然在表中看到相同的数据?

当我复制文件并更改代码以使用新文件名时,我得到了更改后的结果。

是否对 wwwroot 文件进行了一些缓存?我试过努力刷新,这没有什么不同,但改变浏览器确实如此。我知道 Blazor 会缓存框架文件...但是所有 wwwroot 都会发生这种情况,我该如何更改这种行为?

提前致谢。

最佳答案

fetchdata 示例页面(来自新的 blazorwasm)在初始化组件上检索数据:

protected override async Task OnInitializedAsync()
{
    forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
}

当您离开此页面并返回时,初始化再次运行并完成请求。

但是,因为这是一个GET请求,浏览器可以从缓存中传递答案:

enter image description here

它们是避免对 Blazor GET 请求进行缓存的一些方法,请在此处了解:Bypass HTTP browser cache when using HttpClient in Blazor WebAssembly

此外,您还可以使用简单的技巧将随机字符串添加到查询字符串中:

protected override async Task OnInitializedAsync()
{
    var randomid = Guid.NewGuid().ToString();
    var url_get = $"sample-data/weather.json?{randomid}";
    forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>(url_get);
}

enter image description here

简而言之,它似乎被缓存了,因为一个get请求可以被浏览器缓存,并且是浏览器检索数据。

关于json - 为什么 FetchData 中的天气样本似乎已缓存到示例 Blazor 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66039596/

相关文章:

c# - 状态存储在 fluxor 中的什么位置?

java - Android MySQL + PHP + JSON

java - 无法在 Java Spring 中反序列化 JSONObject(在 JSONArray 内部)

ruby-on-rails - Rails用Model Root渲染JSON数据

c# - 将属性重构为字段

blazor - 当 ASPNETCORE_ENVIRONMENT 更改为 "Development"以外的任何内容时 - 在 VS 中调试时,Blazor 应用程序看不到来自 razor 类库的资源

javascript - 如何切换 Google map 中多个 JSON 叠加层的可见性

visual-studio - Visual Studio : suppress debug output per DLL

C++ - 数组类型 'unsigned __int64 [amount*]' 不可分配

asp.net-core - 在 ASP.NET Core 中使用 ValidationMessage 时,我可以添加或更改默认的 CSS 类吗?