Blazor带我重玩前端(二)
概覽
Blazor目前有兩種托管模式,一種是Server-Side模式,一種是WebAssembly模式。官方首先支持的是Service-Side模式,使用WebAssembly模式,需要更新到最新版VS2019。小編目前的精力是更多的專注于Blazor-WebAssembly模式的研究,所以本系列文章只會(huì)對(duì)Server-Side模式做簡(jiǎn)要說明。
WebAssembly
WebAssembly模式(也可叫做Client-Side模式),WebAssembly前文已經(jīng)說了很多了,本文不再做額外討論。我們主要來看一下ASP.NET Core Blazor是如何實(shí)現(xiàn)WebAssembly模式的。Blazor啟動(dòng)后,會(huì)將依賴項(xiàng)、.NET運(yùn)行時(shí)以及應(yīng)用組件下載瀏覽器,應(yīng)用將在瀏覽器上直接運(yùn)行。其交互如圖所示:同時(shí)其UI更新和事件處理也在統(tǒng)一進(jìn)程中進(jìn)行,如下圖所示:
WebAssembly優(yōu)點(diǎn)
Web 程序集在客戶端、瀏覽器內(nèi)運(yùn)行,因此可以作為靜態(tài)文件進(jìn)行部署。
相對(duì)于Server-Side模式,當(dāng)與服務(wù)器連接斷掉時(shí),依然可以連接,但是涉及到數(shù)據(jù)庫查詢等后臺(tái)功能時(shí),肯定是無法正常工作的。
可以減少服務(wù)器負(fù)載壓力。
WebAssembly缺點(diǎn)(此處有誤,請(qǐng)看評(píng)論)
由于其每個(gè)交互HTML由服務(wù)器端預(yù)呈現(xiàn),這意味Server-Side無法使用靜態(tài)化方案。同時(shí)其往返流程所涉及到的時(shí)間消耗,這也只能使得Server-Side模式可能會(huì)有更高的延遲。
需要始終與服務(wù)器建立活動(dòng)連接,一旦服務(wù)器關(guān)閉,應(yīng)用也將立即停止工作。
服務(wù)器壓力會(huì)較大。
Server-Side
Server-Side模式于2019年9月發(fā)布,其目的是使得ASP.NET Core 應(yīng)用中在服務(wù)器上執(zhí)行應(yīng)用。其交互如圖所示:UI 更新、事件處理和 JavaScript 調(diào)用是通過 SignalR 連接進(jìn)行處理。如下圖所示:
Server-Side優(yōu)點(diǎn)
Blazor 服務(wù)器端已經(jīng)先于客戶端呈現(xiàn)了HTML內(nèi)容。相對(duì)于WebAssembly模式要下載很多的文件,Server-Side的啟動(dòng)速度更快,也對(duì)搜索引擎更加友好。
由于瀏覽器端只需要專注于HTML相關(guān)內(nèi)容的展示,這意味Server-Side幾乎不會(huì)遇到什么兼容性。
Server-Side缺點(diǎn)
由于其每個(gè)交互HTML由服務(wù)器端預(yù)呈現(xiàn),這意味Server-Side無法使用靜態(tài)化方案。同時(shí)其往返流程所涉及到的時(shí)間消耗,這也只能使得Server-Side模式可能會(huì)有更高的延遲。
需要始終與服務(wù)器建立活動(dòng)連接,一旦服務(wù)器關(guān)閉,應(yīng)用也將立即停止工作。
服務(wù)器壓力會(huì)較大。
總結(jié)
以上是生活随笔為你收集整理的Blazor带我重玩前端(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔幻艰难的2020上半年!
- 下一篇: .NET Core微服务开发网篇-oce