我的项目当前是Angular前端,后端具有RESTful .NET API。我希望前端能够不断地从某些调用中提取数据(想想速度计的工作方式)。
当前,我的基本实现只是简单地按一定间隔调用API,并使用Observables和Async Pipe来显示数据:
interval(1000).subscribe(() => {
this.data.testCall().subscribe(stuff => this.testDataSource.next(stuff));
});
并且在前端:
<ul>
<li *ngFor="let test of testData | async">
{{ test.Name }} for {{ test.ID }}
</li>
</ul>
但是我对此并不满意,因为这是一种非常低效且昂贵的方法。什么是产生此结果的更有效方法,它甚至在甚至不更改数据的情况下也不需要我不断使服务器过载请求?
以相反的方式思考。相反,前端发出从服务器获取数据的请求,服务器应将最新信息发送到前端。您可以使用服务器发送的事件(SSE)或Web套接字。然后可以在前端开发服务以捕获服务器响应并在UI中显示。
((您可以在后端开发中使用Microsoft SignalR)详细信息可以在SignalR
中找到