您如何衡量网络服务电话的进度?

ash*_*rya 6 ajax asynchronous web-services asp.net-ajax

我有一个ASP.NET Web服务,它可以执行一些繁重的工作,例如,一些文件操作,或者从一堆水晶报表生成Excel表格.我不希望通过调用此Web服务来阻止,所以我想让Web服务调用异步.另外,我想从网页上调用这个Web服务,并希望有一些机制可以让我继续轮询服务器,这样我就可以在屏幕上显示一些进度指示,比如说,文件的数量.已经处理完毕.请注意,我不希望在完成Web方法调用时收到通知,而是希望获得实时进度状态.我该怎么做呢?

Dan*_*dey 4

在服务器上编写一个单独的方法,您可以通过传递已计划作业的 ID 来查询该方法,并返回 0-100(或 0.0 和 1.0,或其他)之间的近似值,表示作业的进度。

例如,在 REST 风格中,您可以发出 GET 请求,http://yourserver.com/app/jobstatus/4133/该请求将返回一个简单的“52” text/plain。然后你只需要每隔(秒?两秒?十秒?)查询一次,看看它走了多远。

您如何实际完成后端监控很大程度上取决于您的流程是什么以及它如何工作。