服务器端Blazor应用程序中的延迟问题

时间:2020-05-10 01:42:01

标签: blazor blazor-server-side

我在不同环境中的blazor服务器端应用程序中的行为不一致。以下是我的问题:

用户单击执行一些异步处理的按钮。在开始处理之前,我打开“ showWaitDialog”变量,以便用户在处理完成时可以看到模式对话框。出现模式对话框至少需要两秒钟。这在服务器上比本地主机更突出。用户可以多次单击该按钮,我想避免这种情况。

下面是简化的代码,出于说明目的,我将长时间运行的任务替换为thread.sleep。我长期运行的任务调用了数据库。

public async Task JoinRoom()
{
  _isShowWaitDialog = true;
  await Task.Delay(1);  // allow the GUI to catch up

  await DoLongWork();

  _isShowWaitDialog = false;
  await Task.Delay(1);  // allow the GUI to catch up
}

Task DoLongWork()
{
   System.Threading.Thread.Sleep(6000);
   return Task.CompletedTask;
}

razor:

.
.
<ProgressMessageModal WaitDialogParameter="@_isShowWaitDialog" />
.
.
@if (SelectedRoom != null)
{
   <div class="col-sm-1">
     <div class="form-group">
       <button type="button" class="btn btn-info" @onclick="JoinRoom">&nbsp;Join&nbsp;</button>
     </div>
   </div>
}


直到他们单击加入按钮两秒钟之后,进度模式对话框才会显示。

在我的本地主机上,进度模式显示需要1秒钟,而在服务器上,我需要2秒钟才能看到进度模式对话框。

我已在服务器上的IIS管理器中验证并启用了Web套接字协议。

有指针吗?我想念什么?

0 个答案:

没有答案