ASP.NET WebAPI Ajax 有进展

ASP.NET WebAPI Ajax with progress

我有一个很长的 webAPI 请求,基本上执行以下操作:

1. retrieves a list of item categories from the db 
2. for each category, retrieve all the items in the category

现在,整个过程需要很长时间,我不希望用户等到整个过程结束,如果一个类别已经完成加载,我希望它 return 给客户端

有谁知道我该怎么做?发送请求并在请求的一部分完成时由服务器获取进度通知?

您可以使用 SignalR 在可用时将数据从服务器发送到客户端。

另一个选项是从客户端轮询。客户端发出初始请求,这会触发一个服务器端进程,该进程准备数据并将其保存在某个地方(在内存中,在数据库中)。然后客户端轮询服务器以获取新的可用数据,直到服务器进程完成。

您需要中断您的请求。使用 for 循环。如果下载了第一类元素,则在下载第二类之前对它们执行一些操作。

因此您的请求将进入某个循环。如果您使用 asp.net webforms

,则可以使用 Jquery 或页面方法

PushStreamContent 可能对您有所帮助: http://weblogs.asp.net/andresv/asynchronous-streaming-in-asp-net-webapi