想象一下我有这个组件:
<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?
答案 0 :(得分:1)
良好/平均连接上的渲染延迟为<50毫秒。
即使连接不好,您也应该保持在1秒以下。
当您的连接变得很糟糕以至于您无法连接时,就会内置一个重新连接对话框。
但是,是的,如果您希望始终保持联机状态,并且在连接非常差(或没有连接)的情况下,最好使用客户端。
答案 1 :(得分:1)
使用服务器端Blazor有两个缺点,当您必须决定使用哪种Blazor风格时,必须考虑这些缺点。通常建议将服务器端Blazor用于私有Intranet网络(例如,具有数百个用户的企业网络)同时访问该网络。在这种情况下,您根本不会遇到渲染延迟。
在这方面,在公共互联网上使用服务器端Blazor可能会出现问题(还需要认真考虑其他方面),可能会导致无法接受的渲染延迟。但是,如果强迫您使用它,则必须寻找可以减轻此问题(呈现延迟)的方法。例如,不要使用输入事件。请改用更改事件。每当您按下键盘按钮时,就会触发输入事件,从而导致调用服务器来处理该事件。但是,如果使用change事件,则可以减少对服务器的调用次数。
希望这对您有帮助...