延迟显示字符串异步

Display string async with delay

我正在尝试在网页中延迟显示一个字符串,以下是我尝试的方法,但该页面在延迟到期之前不会显示。

protected void Page_Load(object sender, EventArgs e)
{
    Print().GetAwaiter().GetResult();
}

private async Task Print()
{
    await Task.Run(async () =>
    {
        await Task.Delay(10000);
        pr.InnerText = "this is a test...";
    });
}

我建议从后端移除此延迟,并在前端使用 javascript 异步调用字符串的后端。您可以使用 setTimeout 和 ajax post 来完成此操作。

你写的是同步代码,“正确”的做法就是:

protected async void Page_Load(object sender, EventArgs e)
{
    await Task.Delay(10000);
    pr.InnerText = "this is a test...";
}

但是,这不能解决您的问题。您在服务器端代码生成上添加了延迟,因此您所成功的只是等待更长时间,直到所有内容都出现在客户端。您应该研究 AJAX 调用以在客户端异步加载数据,并尽快从服务器端发送整个页面框架。

编辑:或者,使用像 Blazor 这样的现代框架,这样的东西可以工作。 WebForms 已经死了 10 多年了。