提问人:Matin 提问时间:11/18/2023 最后编辑:Matin 更新时间:11/18/2023 访问量:73
自动呈现模式如何在 Blazor .NET 8 中工作?
How does Auto Render mode work in Blazor .NET 8?
问:
我一直在 .NET 8 中试验 Blazor,我正在尝试了解自动渲染模式的工作原理。据我所知,Blazor 最初在自动模式下使用 WebSocket 连接,通过服务器端呈现提供交互性。然后,当 WASM 资源在后台加载时,它会切换到 WebAssembly (WASM)。
但是,在我的测试中,我注意到在 WASM 资源完全加载之前没有可用的交互性。在浏览器的网络选项卡中,我可以看到 WebSocket 连接,但 UI 似乎只是预呈现的,而不是交互式的。
我还了解到,将在 WASM 中渲染的组件应该放在项目中,并且这些组件不能设置为 WASM 以外的任何渲染模式(包括服务器模式)。但是,如果自动模式首次要求组件通过 WebSocket 连接进行交互(就像我们在 Blazor Server 应用中所做的那样),如何将这些组件放置在项目中?ProjectName.Client
ProjectName.Client
在我的测试中,我启用了网络限制来模拟慢速网络,我发现自动模式的行为与 WASM 渲染模式几乎相同。这两种模式都提供预渲染,但在加载 WASM 资源之前没有交互性,即使在自动模式下也是如此。
此外,我注意到,如果我在 WASM 和自动渲染模式下禁用预渲染,则在 WASM 资源完全加载之前,任何组件都不可见。这似乎与自动模式应该尽快提供交互性的想法相矛盾。
我观看了 Blazor 的创建者史蒂夫·桑德森 (Steve Sanderson) 的 YouTube 视频。在视频中,它显示,当组件首次在自动模式下加载时,将使用 WebSocket 连接进行渲染和交互。从第二次刷新开始,它通过 WebAssembly 加载。但是,我似乎在测试中没有观察到这种行为。
谁能澄清自动模式应该在 Blazor .NET 8 中如何工作?如果是 WASM,只是预渲染,那么它与 WASM 渲染模式有什么区别(因为默认情况下所有交互式渲染模式都开启了预渲染)? 任何见解将不胜感激🙏。
答: 暂无答案
评论