所以我们知道Blazor非常酷。
然而,这两个版本各有利弊。
WebAssembly第一次加载需要很长时间,服务器端消耗资源(连接端口和ram(
有没有一种方法可以让网站加载服务器端Blazor,一旦加载了WebAssembly的东西,就切换。这两个版本将共享剃须刀的所有组件,因此看起来应该相同。
是否有支持的方法(可能在.Net 5中(?或者一些围绕工作的人已经成功了
GitHub开发分支上的项目Blazor Boilerplate具有在Blazor服务器和wasm之间进行运行时切换的功能。这两个版本共享相同的UI和所有功能。
BSS和WASM之间有一个热交换的实现,称为HybridBlazor。文章对此进行了解释https://itnext.io/blazor-switching-server-and-webassembly-at-runtime-d65c25fd4d8源代码在github上https://github.com/jdtcn/HybridBlazor
这个想法是同时加载BSS和WASM应用程序,但在切换完成之前隐藏WASM应用。由于blazor实现都订阅和处理事件,因此window.addEventListener
被覆盖以仅允许BSS实现处理事件,直到用户切换。例如,可以在页面导航上以静默方式进行切换。