[英]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 :
然后,服务器将始终可以在可用时立即推送数据。 服务器端的实现取决于您使用的后端,但是当今大多数后端框架/服务器也支持websocket。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.