服务器端 Blazor 可以做渲染延迟吗?

Can server-side Blazor make a rendering delay?

假设我有这个组件:

<input bind-value-oninput="@Name">
<p>Your name is @Name</p>
string _name;
string Name
{
    get => _name;
    set => _name = value.ToUpper();
}

当我在输入中键入时,文本是否直接转换为大写并显示在段落中。

我认为(如果我错了请纠正我)服务器端 Blazor 在服务器上运行 .NET MSIL 代码并通过 SignalR 连接发送 DOM 更改。

与服务器的连接可能会延迟,特别是在 Internet 连接不佳的情况下。

在这种输入的情况下,可以在用户输入文本后几秒转换为大写吗?在肯定的情况下,我该如何解决?仅使用客户端 Blazor?

good/average 连接上的渲染延迟 < 50 毫秒。

即使连接状况不佳,您也应该保持在 1 秒以下。

当您的连接变得如此糟糕以至于您超出了连接时,就会出现一个重新连接对话框 built-in。

但是,是的,如果您希望始终可用,即使在连接非常糟糕(或没有连接)的情况下,最好使用客户端。

使用 server-side Blazor 有一些缺点,当您必须决定使用哪种风格的 Blazor 时,必须考虑到这些缺点。 Server-side Blazor 主要推荐用在私有Intranet 网络上,例如企业网络,有几百个用户同时访问该网络。在这种情况下,您根本不会遇到渲染延迟。

在 public Internet 上使用 server-side Blazor 在这方面可能会出现问题(它还有其他需要认真考虑的缺点),并且可能导致无法接受的渲染延迟。但是,如果您被迫使用它,则必须寻找可以缓解此问题(渲染延迟)的方法。例如,不要使用输入事件。请改用更改事件。每当您按下键盘按钮时都会触发输入事件,这会导致调用服务器来处理该事件。但是如果使用change事件,可能会减少对服务器的调用次数。

希望这对您有所帮助...