我想使用 angularjs 从 REST 后端服务器检索表数据。数据每秒都在变化。我想使用 angularjs 来刷新实时变化的数据。如何才能做到这一点?我是否强制 angularjs 定期进行 ajax 调用来刷新数据显示?
最佳答案
是的,对于 REST,除了轮询之外没有其他方法。要在浏览器 View 中刷新数据本身,您可以在服务中使用 $rootScope.$apply()
(我假设您正在使用服务来获取数据),首先您必须注入(inject)当然是 $rootScope
的依赖。
编辑
实际上,您不应该使用 $rootScope.$apply()
,因为它可能会导致丑陋的 $digest in Progress
错误。而是使用
$timeout(function(){
// set data here...
})
如果您对轮询不满意并且您已经对后端进行了编程或准备对其进行更改,则改进提示为: 尝试使用WebSocket:
- 它摆脱了轮询,因为这样您的浏览器可以直接与服务器通信。
- 它的开销更少。
- 主要浏览器都支持它,您可以使用具有后备机制的库,例如 SocketIO
然后,当数据可用时,服务器始终可以立即推送数据。服务器端实现取决于您使用的后端,但现在大多数后端框架/服务器也支持 websockets。
关于javascript - 如何使用 angularjs 刷新从 REST 服务器检索的实时数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21679437/