【发布时间】:2020-12-17 22:49:12
【问题描述】:
我想构建一个简单的 API,它只使用控制器显示一些数据。控制器使用 genfu 显示一些虚拟数据,目前它被一次全部检索到,我需要做的是在一定时间后显示每条记录,比如,我第一次运行应用程序时我想要 0 个结果,而不是,例如一秒后,下一秒等等,这就是我目前在控制器中所拥有的,它真的很基本
// GET: api/<controller>
[HttpGet]
public IEnumerable<Contact> Get()
{
var data = _contactsGeneratorService.Collection(100);
return data;
}
我尝试使用 thread.sleep 选项,但在这种情况下不起作用。抱歉,我真的很陌生。
【问题讨论】:
-
我相信 API 不是正确的选择,你可以考虑 SignalR,请检查这个stackoverflow.com/questions/20230561/…
-
真的不清楚您想要实现什么以及您希望在服务器端(控制器运行的位置)与客户端看到什么行为。对我来说,这听起来像是您想模拟将数据增量加载到 UI(为此您可能应该考虑分页来自服务器的响应,可能在每个呼叫服务器端使用 Task.Delay 来降低速度),但基于当前答案这远不是对问题的唯一解释。
-
从你的描述来看,你想把记录一一显示。如果您正在创建计时器并在服务器端(在 API 控制器中)加载记录,之后您需要将每个结果发送到客户端并更新内容,在这种情况下,您可以考虑使用 SignalR,它可以用来实现实时更新。另外,你也可以尝试创建一个JQuery Timer,每隔一秒调用一次API方法,在Ajax成功函数中动态在html页面中添加一条记录。
标签: c# api asp.net-core time get