繁体   English   中英

如何使用angularjs刷新从REST服务器检索的实时数据?

[英]How to refresh real-time data retrieved from REST server with angularjs?

我想使用angularjs从REST后端服务器检索表数据。 数据每秒变化一次。 我想使用angularjs刷新实时更改的数据。 如何才能做到这一点? 我是否要强制angularjs定期进行ajax调用以刷新数据显示?

您必须使用轮询或推送策略。 但是,由于您已经知道资源会定期更改,因此足以设置重复超时,以便您的应用程序每秒轮询一次REST服务器上的资源。 一旦检索到,AngularJS将更新视图。 因此,是的,您必须强制AngularJS对该服务进行调用。

是的,使用REST,没有其他方法可以轮询了。 要在浏览器视图中刷新数据本身,可以在服务中使用$rootScope.$apply() (我想您正在使用服务来获取数据),首先您必须注入$rootScope的依赖项。

编辑实际上,您不应该使用$rootScope.$apply() ,因为它可能会导致难看的$digest in progress错误。 改为使用

$timeout(function(){
  // set data here...
})

如果您对轮询不满意并且对后端进行了编程或可以更改后端,则可以作为改进的提示 :尝试使用WebSockets

  • 它摆脱了轮询,因为这样您的浏览器便可以直接与服务器通信。
  • 它具有较少的开销。
  • 主要浏览器都支持它,您可以将库与SocketIO等回退机制一起使用

然后,服务器将始终可以在可用时立即推送数据。 服务器端的实现取决于您使用的后端,但是当今大多数后端框架/服务器也支持websocket。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM