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

时间:2019-05-16 10:35:42

标签: signalr blazor blazor-server-side

想象一下我有这个组件:

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

2 个答案:

答案 0 :(得分:1)

良好/平均连接上的渲染延迟为<50毫秒。

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

当您的连接变得很糟糕以至于您无法连接时,就会内置一个重新连接对话框。

但是,是的,如果您希望始终保持联机状态,并且在连接非常差(或没有连接)的情况下,最好使用客户端。

答案 1 :(得分:1)

使用服务器端Blazor有两个缺点,当您必须决定使用哪种Blazor风格时,必须考虑这些缺点。通常建议将服务器端Blazor用于私有Intranet网络(例如,具有数百个用户的企业网络)同时访问该网络。在这种情况下,您根本不会遇到渲染延迟。

在这方面,在公共互联网上使用服务器端Blazor可能会出现问题(还需要认真考虑其他方面),可能会导致无法接受的渲染延迟。但是,如果强迫您使用它,则必须寻找可以减轻此问题(呈现延迟)的方法。例如,不要使用输入事件。请改用更改事件。每当您按下键盘按钮时,就会触发输入事件,从而导致调用服务器来处理该事件。但是,如果使用change事件,则可以减少对服务器的调用次数。

希望这对您有帮助...