在服务器数据更改时更新作用域属性,而无需客户端检查服务器angularjs

在服务器数据更改时更新作用域属性,而无需客户端检查服务器angularjs,angularjs,Angularjs,对于此方法调用: $http.get("Some api call").then(function (response) { $scope.data=response.data; }); 假设响应不断更新,并且我希望在响应更新时更新$scope.data属性,而不使用超时或间隔方法触发$http.get 我没有得到任何解决这个问题的办法。请举例说明你的想法。你所问的就是所谓的 除非再次启动请求,否则HTTP

对于此方法调用:

$http.get("Some api call").then(function (response) {
                        $scope.data=response.data;
                    });
假设
响应
不断更新,并且我希望在
响应
更新时更新
$scope.data
属性,而不使用超时或间隔方法触发$http.get


我没有得到任何解决这个问题的办法。请举例说明你的想法。

你所问的就是所谓的

除非再次启动请求,否则HTTP请求将不会获取最新数据。除非再次触发请求,否则您的
响应
将不会有最新数据,因此,
数据
对象也不会得到更新

再多的
$watch
也不够。原因很简单,除非定期轮询服务器,否则将无法获取最新数据

这就是HTTP/1.1的行为方式。HTTP/2很快就会改变这一点


如果您不希望定期发出请求,请查看套接字。您没有提到您的后端,但是可以在中找到一个Nodejs示例。

您所问的是所谓的

除非再次启动请求,否则HTTP请求将不会获取最新数据。除非再次触发请求,否则您的
响应
将不会有最新数据,因此,
数据
对象也不会得到更新

再多的
$watch
也不够。原因很简单,除非定期轮询服务器,否则将无法获取最新数据

这就是HTTP/1.1的行为方式。HTTP/2很快就会改变这一点


如果您不希望定期发出请求,请查看套接字。您没有提到后端,但可以在以下位置找到Nodejs示例:

您可以使用$scope。$watch('data',function(newValue,oldValue){console.log('being-watched-oldValue:',oldValue,'newValue:',newValue);});检查值是否更改,如果更改,则调用get@neda您能否提供一个示例查看数据变量(如我的上述注释)并检查其是否已更改。如果服务器上的数据正在更改,您需要从客户端进行轮询(例如,通过setTimeout/Interval,您希望避免),或者您可以尝试使用WebSockets之类的东西--这允许连接到服务器和服务器,以便向客户端发送更新。您可以使用$scope.$watch('data',function(newValue,oldValue){console.log('being-watched-oldValue:',oldValue,'newValue:',newValue);});检查值是否更改,如果更改,则调用get@neda您能否提供一个示例查看数据变量(如我的上述注释)并检查其是否已更改。如果服务器上的数据正在更改,您需要从客户端进行轮询(例如,通过setTimeout/Interval,您希望避免),或者你可以尝试使用WebSocket之类的东西——这允许连接到服务器和服务器向客户端发送更新。解决方案可以在不使用任何其他js的情况下开发吗?“…任何其他js”。这是什么意思?就像你在解决方案中提到的node.js或jetty!我认为你不理解这个问题。这就是HTTP的行为方式。不管你的后端是什么。频繁轮询服务器或使用前面提到的套接字。看看我在websockets和angularjs上看到的所有示例,它们都涉及nodejs/jetty,但从未单独使用angularjs实现。另外,对于像“”这样的rest服务,如何形成WebSocket,因为我在所有示例中只看到“ws”作为协议,所以可以在不使用任何其他js的情况下开发解决方案“…任何其他js”。这是什么意思?就像你在解决方案中提到的node.js或jetty!我认为你不理解这个问题。这就是HTTP的行为方式。不管你的后端是什么。频繁轮询服务器或使用前面提到的套接字。看看我在websockets和angularjs上看到的所有示例,它们都涉及nodejs/jetty,但从未单独使用angularjs实现。另外,对于像“”这样的rest服务,如何形成WebSocket,因为我在所有示例中只看到“ws”作为协议