首页 > 解决方案 > 服务器端 Blazor 能否造成渲染延迟?

问题描述

想象一下我有这个组件:

<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?

标签: signalrblazorblazor-server-side

解决方案


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

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

希望这可以帮助...


推荐阅读