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

时间:2014-02-10 14:10:35

标签: javascript ajax angularjs rest

我想从带有angularjs的REST后端服务器检索表数据。数据改变了第二个。我想使用angularjs来刷新数据,因为它实时变化。如何才能做到这一点?我是否强制angularjs以固定的时间间隔进行ajax调用以刷新数据显示?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

是的,使用REST,然后没有其他方式进行轮询。要在浏览器视图中刷新数据本身,您可以在服务中使用$rootScope.$apply()(我假设您正在使用服务来获取数据),首先必须注入$rootScope的依赖关系。当然。

修改 实际上你不应该使用$rootScope.$apply(),因为它可能导致丑陋的$digest in progress错误。而是使用

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

改进提示如果您对轮询不满意,并且您已编程后端或有能力进行更改,则: 尝试使用 WebSockets

  • 它摆脱了轮询,因为那时你的浏览器可以直接与服务器通信。
  • 它的开销较小。
  • 主流浏览器支持它,您可以使用具有SocketIO
  • 等回退机制的库

然后,当服务器可用时,服务器可以随时将数据推送出去。服务器端实现取决于您使用的后端,但现在大多数后端框架/服务器也支持websockets。