ASP.NET MVC剃刀视图与AngularJS

hwazgwia  于 2023-02-21  发布在  Angular
关注(0)|答案(2)|浏览(138)

我在视图中使用带有Razor语法的ASP.Net MVC。但是由于对性能增强的研究很少,我发现视图引擎需要花时间将Razor代码编译成HTML。那么在视图中使用AngularJS而不是Razor语法是个好主意吗?如果这能提高性能,那么它的其他优点和缺点是什么?
先谢了。

bmp9r5qi

bmp9r5qi1#

哪条路径能给你更好的性能取决于几个因素。zambeb关于mvc.netrazor视图的回答是不准确的。

    • mvc. net视图在第一次被请求时被编译,此后只有数据被插入到预编译的视图中。这是一个比Angular 视图**被解析和呈现要少得多的处理器密集型操作。

然而,Angular 视图是在客户端(浏览器)呈现的。如果由于某种原因您的服务器不能满足您的需要,您的网站将执行更好,如果建立与Angular
另一方面,如果两个站点都是用足够大的服务器构建的,那么
mvc. net
的渲染时间往往会更快,因为浏览器的任务强度较低。
当然,例外的情况是,如果你正在建立一个网站,你希望用视图而不是dom操作或小部件来做许多小的ui更改,那么再次angular获胜。
这就是为什么当使用mvc.net构建时,构建比angular稍大和更复杂的视图是有意义的,但不是必须的。
最后,每种方法都可能被滥用和表现不佳。每种方法也都适合于特定风格的网站。
这两种方法也可以结合使用,在www.example.com中,布局页面可以将视图渲染为html片段,这意味着前端的Angular 开发人员只需要关心静态视图和控制器,而mvc.net开发人员关心的是服务器上的模型、动态视图和控制器。mvc.net a layout page can be made to render views as html fragments. This means a front end angular developer only need worry about static views and controllers and the mvc.net developer concerns himself with models, dynamic views, and controllers on the server.
祝你好运!

jv4diomz

jv4diomz2#

Razor是一个服务器端的视图引擎,这意味着你的每一个请求都会在服务器端被接受,并生成一个新的html页面(从预编译的Angular 看,如@N-ate所添加的,但仍然是从服务器端).它就像是在服务器上创建或阅读html文件,然后发送给客户端上的响应.在其他端,Angular不需要生成新的html文件,它直接使用从服务器发送的数据,直接在客户端(浏览器)生成视图。
这两种方法都可以,取决于具体情况。你是更喜欢你的服务器努力工作来读取或创建html文件,还是让客户端来做这些工作对你来说更好?
另一个需要考虑的因素是UI设计师的工作流程。使用Razor,你需要设计师了解一些Razor语法,这在现在(和那些时候)是非常罕见的。使用Angular,你可以期望找到更多的人习惯于这种工作流程。
还有更多的分歧,但我认为考虑到这两点,决定可以缩小。

相关问题