1

在我的用户界面中,我正在尝试实现一个进度条,它显示用户请求的工作完成百分比。

我的后端 REST 服务需要进行大量计算;因此它相对较慢。我想向用户展示后端的工作已经完成。例如:Task1 完成,正在处理 Task2(因此在进度条上显示 50%)

我的问题:

该服务仅在完成其整个任务后才返回结果。我不知道如何获得中间反馈以向用户显示一定百分比的工作已完成,因此他/她应该耐心等待。

澄清一下,在您开始建议以下任何一项之前:

  1. 我不想使用 gif Ajax 加载程序。

  2. 服务已经优化,无法进一步微调。

  3. 服务工作已经非常原子化,它不能被进一步分解为超过 1 个服务,而不会由于额外的网络流量而导致进一步的性能损失。

如果以上无法完成,请告诉我,我可以停止搜索。

4

1 回答 1

1

您想要做的是与 HTTP 服务器的双向通信,基本上有两种方法可以做到:

  • Rest-Polling:设置第二个 API-Call,客户端可以定期轮询以获取计算的当前状态。

  • WebSockets:在您的客户端和服务器之间建立一个 WebSocket 连接,这将允许服务器启动与客户端的通信并在任务完成后立即发送消息。仅仅为此添加 WebSocket 可能会导致比 Rest-Polling 更多的网络流量。

如果这些都不适合您,那么我认为您想要的都不可能。

于 2013-05-21T16:38:11.657 回答