如何在 Blazor 服务器端模拟延迟?

Posted

技术标签:

【中文标题】如何在 Blazor 服务器端模拟延迟?【英文标题】:How to simulate latency on Blazor Server Side? 【发布时间】:2021-03-21 03:42:54 【问题描述】:

我有一个 Blazor 服务器端应用程序,我将托管在离我的主要用户将使用的地方不那么近的服务器上,我想模拟某些功能是否可以在一些延迟下使用,或者延迟是否会真的有影响。

但是我无法在开发时测试延迟,并且我不想每次想要测试一些更改时都在服务器中运行构建。

我尝试了很多东西,比如减少 chrome 开发者工具中的互联网连接,但这与来自遥远主机的延迟不同。

【问题讨论】:

【参考方案1】:

您可以在异步任务函数中使用 Task.Delay() 方法,就在获取一些数据之前或在执行您需要模拟的事情之前。

下一个示例是一个 Blazor 组件,它在单击按钮后假装从服务器加载消息(MessageFromServer 属性)。 await Task.Delay 方法添加了额外的等待时间。

@MessageFromServer

<button @onclick="ElaborateDataOnServer">Load Data</button>

@code
    public string MessageFromServer  get; set;  = string.Empty;

    public async Task ElaborateDataOnServer()
    
        //simulate the waiting
        await Task.Delay(1000);
        MessageFromServer = "loaded from server";
    

【讨论】:

这是不可行的,因为我需要在我的应用程序的每个地方添加Task.Delay,这已经是一个糟糕的解决方案,但我仍然无法重现@987654321 之类的东西@ 与延迟有关

以上是关于如何在 Blazor 服务器端模拟延迟?的主要内容,如果未能解决你的问题,请参考以下文章

如何限制 Blazor 服务器端请求大小

如何在服务器端 Blazor 中存储会话数据

如何在服务器端 Blazor 中访问 HttpContext?

如何在Blazor服务器端处理窗口或主体滚动?

如何在服务器端 Blazor 组件中访问实体框架 DbContext 实体

如何向服务器端 Blazor 项目添加控制器(而非视图)支持