0

我一直对 Blazor 的三种不同选项感到困惑;(服务器应用程序、WebAssembly 和 WebAssembly 托管)。虽然,这篇文章说得很清楚。

但是,我仍然不清楚,因为我们可以同时受益于 Blazor 服务器端应用程序的客户端 SinglePage 体验和服务器端功能,为什么我们需要使用其他两个选项(WebAssembly 和 WebAssembly-托管)?我知道在 webAssembly-hosted 选项中,代码将通过客户端的 webAssembly 和 dot.NetCore 进行解释。另一方面,在服务器端应用程序上,请求发送到服务器并被渲染,然后返回到浏览器。

因此,通过使用 Blazor 服务器端应用程序,我既可以保持 MVC.Net 之类的编码方式并拥有不同的.cshtml页面,也可以在我的项目中使用单页部分。(如果我错了,请纠正我!)

更新:

让我们这样问:

  • 在 WASM 托管模式下,组件(及其代码和其他文件)将由客户端(浏览器)请求发送,然后浏览器(几乎)获取所有组件和文件以呈现页面(以及代码到由客户端的客户端 .Net 核心解释)。所以现在,唯一的网络活动将是 API 请求和结果。
  • 但是,在服务器端应用程序上,您可以进行正常的页面加载(就像在 MVC.Net 上发生的那样,但是使用 SignalR 而不是 Ajax),也可以使用单页模式(例如,在 Server- Side app 模板,Profile 页面,向服务器发送和接收数据。但是,weatherForecast 和 Counter 页面仍然是客户端,没有进一步的网络活动)。在这种模式下,浏览器再次从服务器获取文件和组件(是否预渲染),传输的数据没有 WASM 模式那么大,而且用户仍然在体验没有网络流量的单页 Web 应用程序因为用户正在这个区域工作。
4

1 回答 1

1

老实说,客户是要走的路。使用服务器端的 SignalR 方法是带有回发功能的 asp.net 稍微好一点的版本。

如果您能花时间学习如何使用客户端 Blazor,我认为您将能够为用户提供更快更好的用户体验。

这只是我的看法,但我认为这是正确的。

于 2019-10-15T19:32:33.597 回答