Ajax 如何使用AngularJS在所有应用程序上执行检查后端数据状态的服务

Ajax 如何使用AngularJS在所有应用程序上执行检查后端数据状态的服务,ajax,angularjs,angularjs-directive,angularjs-scope,angular-ui,Ajax,Angularjs,Angularjs Directive,Angularjs Scope,Angular Ui,正如标题中提到的,我正在尝试创建一个Angular服务,它将像后端的Listener一样使用,它将检查后端是否完成了列表进程的计算,并返回尚未完成的内容。 例如:当用户仍在应用程序界面上时,每5秒重新执行一次验证。这样做的部分困难在于让后端报告其计算的进度,但是,假设您已经计算出来,前端部分似乎相当简单 例如,您的服务可以使用向某个后端控制器发出重复请求,直到后端返回一个sentinel以表示其已完成计算 前端程序流程如下所示: 向后端发出请求 等待回应 成功接收响应时: 使用接收到的数据更

正如标题中提到的,我正在尝试创建一个Angular服务,它将像后端的Listener一样使用,它将检查后端是否完成了列表进程的计算,并返回尚未完成的内容。
例如:当用户仍在应用程序界面上时,每5秒重新执行一次验证。

这样做的部分困难在于让后端报告其计算的进度,但是,假设您已经计算出来,前端部分似乎相当简单

例如,您的服务可以使用向某个后端控制器发出重复请求,直到后端返回一个sentinel以表示其已完成计算

前端程序流程如下所示:

  • 向后端发出请求
  • 等待回应
  • 成功接收响应时:
    • 使用接收到的数据更新前端范围/变量/视图/任何内容
    • 如果响应包含
      已完成
      哨兵,请停止发出请求
    • 如果响应不包含
      completed
      sentinel,则重复此过程(延迟一段时间后)

我用一个非常简单的例子说明了我的意思。每隔三秒钟它就会向后端发出另一个请求(使用)。

也许websocket是个更好的主意。它将避免您执行多个无用的请求来检查任务是否结束。实际上,我发现$interval允许我们这样做$interval只是一个包装器,它将每隔x毫秒执行一个函数。它确实会做你想做的事,但这可能不是最好的方式。