gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 08:09:44 24 4
gpt4 key购买 nike

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/

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