You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WASM 7.0模板关闭宿主服务器后FetchData仍正常工作的原因是什么?

Blazor WebAssembly关闭服务器后FetchData仍可用的原因

首先明确核心逻辑:Blazor WebAssembly是纯客户端运行的Web应用——当浏览器完成应用的初始加载后,整个应用的代码、依赖库以及相关静态资源都会被下载并存储在浏览器本地。关闭Kestrel服务器只是切断了浏览器与服务器的后续连接,但已经加载完成的应用完全可以在浏览器中独立运行。

再看你调用的sample-data/weather.json:这是项目自带的静态文件,在服务器运行期间,浏览器已经完成了该文件的请求并将其缓存。当你关闭服务器后导航到FetchData页面,执行这段代码时:

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

浏览器并没有向已关闭的服务器发起新请求,而是直接从本地缓存中读取了之前下载好的JSON文件,因此数据能正常获取,代码可以正常运行。

只有当你刷新浏览器时,浏览器会重新尝试向服务器请求应用的入口资源(比如index.html),此时服务器已关闭无法响应,才会出现加载失败的情况。

内容的提问来源于stack exchange,提问作者Big Square

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:10:20