2 votes

Où s'exécute le code à l'intérieur de @code dans Blazor côté serveur ?

Ceci pourrait être une question stupide. Mais j'essayais de lire davantage sur Blazor, mais je suis toujours confus à propos de @code. D'après ce que je comprends, lorsque vous utilisez @code dans Blazor côté client, tout s'exécute localement sur le navigateur du client. Donc j'ai quelques questions :

  1. Lorsque vous utilisez Blazor côté serveur, le code à l'intérieur du bloc @code s'exécute-t-il sur le serveur ou toujours sur le client ?
  2. Est-ce que le code à l'intérieur du bloc @code est essentiellement converti en JS dans Blazor ?
  3. Est-il possible d'exécuter du code C# localement sur le client dans une application Blazor côté serveur ? Un cas où j'en ai besoin : une application où les utilisateurs éditent un document de manière collaborative en ligne (comme Google Docs). Je veux détecter les changements sur le serveur et dire à chaque client qui utilise ce document d'accepter les nouveaux changements.

4voto

Issac Points 748

Le bloc @code est utilisé à la fois dans une application Blazor Server et dans une application Blazor WebAssembly pour séparer la vue (mélange de balisage C# + Html) d'un composant de sa partie code. Ces deux parties sont compilées dans une seule classe ComponentBase.

Lorsque vous utilisez Blazor côté serveur, le code à l'intérieur du bloc @code s'exécute-t-il sur le serveur ou toujours côté client?

Votre application Blazor Server s'exécute uniquement sur le serveur. Elle émet des écarts Html qui sont transmis au navigateur client via une connexion SignalR, et un code Client SignalR (JavaScript) met à jour l'élément DOM avec les écarts Html qui lui sont transmis.

Notez que chaque interaction avec le côté client (navigateur) de l'application Blazor Server est exécutée sur le serveur. Ainsi, si vous cliquez sur un bouton, le gestionnaire d'événements attaché à l'événement de clic du bouton est exécuté sur le serveur.

Le code à l'intérieur du bloc @code est-il essentiellement converti en JS dans Blazor?

Non. Il s'agit de code en C# et reste tel quel. Si votre application est une application Blazor Server, elle est, une fois encore, exécutée sur le serveur. Si elle est une application Blazor WebAssembly, elle est exécutée dans le navigateur, en C#, dans des assemblies .Net. Elle n'est même pas compilée en wasm. C'est du .Net sur le navigateur. Cependant, le runtime mono qui exécute ces assemblies .Net est compilé en WebAssembly.

Est-il possible d'exécuter du code C# localement sur le client dans une application Blazor côté serveur?

Comme je l'ai écrit ci-dessus, il est clairement évident que ce n'est pas le cas. Encore une fois, l'application Blazor Server est exécutée sur le serveur. Votre cas d'utilisation n'est pas un problème et peut être facilement résolu...

J'espère que cela vous aide...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X