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模式可能会有更高的延迟。
- 需要始终与服务器建立活动连接,一旦服务器关闭,应用也将立即停止工作。
- 服务器压力会较大。
Blazor带我重玩前端(二)的更多相关文章
- Blazor带我重玩前端(一)
写在前面 曾经我和前端朋友聊天的时候,我说我希望有一天可以用C#写前端,不过当时更多的是美好的想象,而现在这一切正变得真实…… 什么是Blazor 我们知道浏览器可以正确解释并执行JavaScript ...
- Blazor带我重玩前端(三)
写在前面 需要升级VS2019以及.NET Core到最新版(具体的最低支持,我已经忘了,总是越新支持的就越好),以更好的支持自己开发Blazor项目. WebAssembly 搜索Blazor模板 ...
- Blazor带我重玩前端(四)
布局 Blazor中的布局和MVC中的布局是类似的. 创建布局 新建一个Razor页面,所有新增的布局都要继承LayoutComponentBase,同时标识自定义内容的输出位置,即标识Body的位置 ...
- Blazor带我重玩前端(五)
概述 本文主要讨论Blazor事件内容,由于blazor事件部分很多,所以会分成上下两篇,本文为第一篇,后续会有第二篇. 我们可以视组件是一个类,我们先看一下前文所说的Index.Razor页面生成的 ...
- Blazor带我重玩前端(六)
本文主要讨论Blazor事件内容,由于blazor事件部分很多,所以会分成上下两篇,本文为第二篇. 双向绑定 概述 如图所示 当点击单项绑定的时候,MyOnewayComponent里的属性值会发生变 ...
- 重学前端 --- Promise里的代码为什么比setTimeout先执行?
首先通过一段代码进入讨论的主题 var r = new Promise(function(resolve, reject){ console.log("a"); resolve() ...
- 「kuangbin带你飞」专题二十 斜率DP
layout: post title: 「kuangbin带你飞」专题二十 斜率DP author: "luowentaoaa" catalog: true tags: mathj ...
- 「kuangbin带你飞」专题二十二 区间DP
layout: post title: 「kuangbin带你飞」专题二十二 区间DP author: "luowentaoaa" catalog: true tags: - ku ...
- 重学前端--js是面向对象还是基于对象?
重学前端-面向对象 跟着winter老师一起,重新认识前端的知识框架 js面向对象或基于对象编程 以前感觉这两个在本质上没有什么区别,面向对象和基于对象都是对一个抽象的对象拥有一系列的行为和状态,本质 ...
随机推荐
- Java实现构造无向图的欧拉回路( The Necklace)
中文翻译: 但是,唉!一天,项链被撕破了,珠子散落在屋檐上.我姐姐尽力把地板上的珠子都捡起来了.但她不确定自己是否能收集到所有的照片.现在,她来找我帮忙.她想知道是否有可能让克劳斯使用她在里面的所有珠 ...
- Java实现John's trip(约翰的小汽车)
1 问题描述 John's trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8998 Accepted: 3018 Sp ...
- Java实现第十届蓝桥杯不同子串
试题 C: 不同子串 本题总分:10 分 [问题描述] 一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成 的串.例如,字符串aaab 有非空子串a, b, aa, ab, aaa, ...
- 常见ie9兼容问题
公司项目要求需要兼容ie9,开发过程中遇到了许多问题,在这里记录一下,希望可以帮到其他需要的小伙伴. 浏览器兼容性问题无外乎三点,css样式兼容.JavaScript兼容及h5部分标签的兼容.主要介绍 ...
- intput子系统
1.按键驱动程序的第一个版本:day07/04 //内核模块的基本要求 init.h module.h LICENSE struct cdev btn_cdev; b ...
- TCP 三次握手的意义
概述 在网络的传输层协议中, 存在着两大悍将: TCP 和 UDP . 从前, 我傻傻的以为自己对他们虽谈不上精通, 但还是知道的, 但是, 我错了, 我被自己问住了, 我傻了. 啥也不是. UDP ...
- EIGRP-16-其他和高级的EIGRP特性-2-非等价负载分担
与大多数内部路由协议不同的是, EIGRP能够将流量负载分到多条非等价路径上,而不仅仅使用去往目的地最近距离的那一条路径.提供这项功能的特性称为非等价负载分担. 非等价负载分担的核心概念是可行后继 ...
- 【转载】自动化魔方求解器的Bug——选择合适的色彩空间
目录 1. 准备工作-- 2. RGB颜色空间 3. LAB色彩空间 4. YCrCb色彩空间 5. HSV色彩空间 Color spaces in OpenCV (C++ / Python) 几天前 ...
- free【分层图最短路】
free 传送门 来源: 牛客网 题目描述 Your are given an undirect connected graph.Every edge has a cost to pass.You ...
- 非线性规划的Matlab 解法
编写M 文件fun1.m 定义目标函数 function f=fun1(x); % 定义目标函数 f=sum(x.^)+; % .^2是矩阵中的每个元素都求平方.^2是求矩阵的平方或两个相同的矩阵相乘 ...