【发布时间】:2020-02-12 01:46:07
【问题描述】:
我一直对 Blazor 的三个不同选项感到困惑; (服务器应用程序、WebAssembly 和 WebAssembly 托管)。 虽然,这个Post 说得很清楚。
但是,我仍然不清楚,因为我们可以同时受益于 Blazor 服务器端应用程序的客户端 SinglePage 体验和服务器端功能,为什么我们需要使用其他两个选项(WebAssembly和 WebAssembly 托管)? 我知道在 webAssembly-hosted 选项中,代码将在客户端通过 webAssembly 和 dot.NetCore 进行解释。另一方面,在服务器端应用程序上,请求发送到服务器并被渲染,然后返回到浏览器。
因此,通过使用 Blazor 服务器端应用程序,我既可以保持 MVC.Net 之类的编码方式,又可以拥有不同的 .cshtml 页面,并且在我的项目中也可以使用单页部分。 (如有错误请指正!)
更新:
我们这样问吧:
- 在 WASM 托管模式下,组件(及其代码和其他文件)将由客户端(浏览器)请求发送,然后浏览器(几乎)获取所有组件和文件以呈现页面(以及还代码由客户端.Net核心解释)在客户端。所以现在,唯一的网络活动将是 API 请求和结果。
- 不过,在服务器端应用程序上,您可以进行正常的页面加载(就像在 MVC.Net 上发生的那样,但是使用 SignalR 而不是 Ajax),您还可以使用单页模式(例如,在服务器端应用程序模板,配置文件页面,向服务器发送和接收数据。但是,weatherForecast 和计数器页面仍然是客户端,没有进一步的网络活动)。在这种模式下,浏览器再次从服务器获取文件和组件(是否预渲染),传输的数据没有 WASM 模式那么大,而且用户仍然在体验没有网络流量的单页 Web 应用程序因为用户正在这个区域工作。
【问题讨论】:
-
这可能会有所帮助:devblogs.microsoft.com/aspnet/…
-
@cremor 谢谢你的链接。实际上,我已经阅读了这篇文章。坚果仍然没有帮助。也许我需要更新我的问题。 :)
标签: c# .net-core blazor-server-side blazor-client-side