Blazor带我重玩前端(二)
概览
Blazor目前有两种托管模式,一种是Server-Side模式,一种是WebAssembly模式。官方首先支持的是Service-Side模式,使用WebAssembly模式,需要更新到最新版VS2019。 小编目前的精力是更多的专注于Blazor-WebAssembly模式的研究,所以本系列文章只会对Server-Side模式做简要说明。
WebAssembly
WebAssembly模式(也可叫做Client-Side模式),WebAssembly前文已经说了很多了,本文不再做额外讨论。我们主要来看一下ASP.NET Core Blazor是如何实现WebAssembly模式的。Blazor启动后,会将依赖项、.NET运行时以及应用组件下载浏览器,应用将在浏览器上直接运行。其交互如图所示:
同时其UI更新和事件处理也在统一进程中进行,如下图所示:
WebAssembly优点
- Web 程序集在客户端、浏览器内运行,因此可以作为静态文件进行部署。
- 相对于Server-Side模式,当与服务器连接断掉时,依然可以连接,但是涉及到数据库查询等后台功能时,肯定是无法正常工作的。
- 可以减少服务器负载压力。
WebAssembly缺点
- 首次加载时间会比较长,因为它需要下载应用的依赖项、运行时以及 WAT 文件。
- Blazor WebAssembly 仅适用于较新的浏览器,并且对搜索引擎并不友好。
Server-Side
Server-Side模式于2019年9月发布,其目的是使得ASP.NET Core 应用中在服务器上执行应用。 其交互如图所示:
UI 更新、事件处理和 JavaScript 调用是通过 SignalR 连接进行处:
Server-Side优点
- Blazor 服务器端已经先于客户端呈现了HTML内容。相对于WebAssembly模式要下载很多的文件,Server-Side的启动速度更快,也对搜索引擎更加友好。
- 由于浏览器端只需要专注于HTML相关内容的展示,这意味Server-Side几乎不会遇到什么兼容性。
Server-Side缺点
- 由于其每个交互HTML由服务器端预呈现,这意味Server-Side无法使用静态化方案。同时其往返流程所涉及到的时间消耗,这也只能使得Server-Side模式可能会有更高的延迟。
- 需要始终与服务器建立活动连接,一旦服务器关闭,应用也将立即停止工作。
- 服务器压力会较大。
以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦
作者: 艾心
出处: https://www.cnblogs.com/edison0621/
本文版权归作者和博客园共有,欢迎转载,转载时保留原作者和文章地址即可。