1

想象一下我有这个组件:

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

4

2 回答 2

4

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

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

希望这可以帮助...

于 2019-05-16T17:34:03.687 回答
3

良好/平均连接的渲染延迟小于 50 毫秒。

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

当您的连接变得如此糟糕以至于您超过该连接时,就会有一个内置的重新连接对话框。

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

于 2019-05-16T12:12:43.937 回答