@code中的代码在哪里在blazor服务器端运行?

问题描述 投票:1回答:1

这可能是一个愚蠢的问题。但是我试图阅读有关Blazor的更多信息,但是我对@code始终感到困惑。据我了解,当您在客户端火焰中使用@code时,所有内容都在客户端浏览器上本地运行。所以我有几个问题:

  1. [在服务器端使用blazor时,@code块内部的代码是否在服务器或仍然客户端上运行?
  2. @code块内部的代码实际上在blazor中是否已转换为JS?
  3. 是否可以在服务器端blazor应用程序的客户端上本地运行C#代码?我需要的一种情况:一种应用程序,用户可以在网上一起共同编辑文档(例如google docs)。我想检测服务器上的更改,并告诉使用该文档的每个客户端接受新更改。
blazor blazor-server-side
1个回答
2
投票

@ code块在Blazor Server应用程序和Blazor WebAssembly App中都使用,以在组件的视图(混合的C#+ HTML标记)部分及其代码部分之间进行分隔。这两个部分都被编译到单个ComponentBase类中。

当您在服务器端使用blazor时,@ code块内部的代码是否在服务器或静止客户端上运行?

您的Blazor服务器应用程序仅在服务器上运行。它发出通过SignalR连接传递到客户端浏览器的Html差异,并且客户端SignalR代码(JavaScript)用传递给它的Html差异更新DOM元素。

请注意,与Blazor Server App的客户端(浏览器)的每次交互都是在服务器上执行的。因此,如果单击按钮,则在服务器上执行附加到按钮的click事件的事件处理程序。

@ code块内的代码是否实际上在blazor中转换为JS?

没有它是C#中的代码,现在仍然如此。如果您的应用程序在Blazor Server App中,则再次在服务器上执行。如果在Blazor WebAssembly App中,则在浏览器中以C#、. Net程序集执行。它甚至没有编译成wasm。在浏览器上是.Net。但是,执行这些.Net程序集的mono运行时将编译为WebAssembly。

是否可以在服务器端blazor应用程序的客户端上本地运行C#代码?

从我在上面的内容中可以明显看出,事实并非如此。同样,Blazor Server App在服务器上执行。您的用例不是问题,可以轻松解决...

希望这有帮助...

© www.soinside.com 2019 - 2024. All rights reserved.