Javascript 调用此.$scope.$digest()的影响;
我想知道调用Javascript 调用此.$scope.$digest()的影响;,javascript,angularjs,angular,signalr,Javascript,Angularjs,Angular,Signalr,我想知道调用this.$scope.$digest()是否有任何影响在每次AJAX下载脚本之后。我正在使用信号器从服务器获取数据。数据一进来,我就想把数据绘制到网格上。当我在ControllerJS中的函数在眨眼的时间内执行时,绘制到UI大约需要3到4秒,这是不可接受的 角巴塔朗说6.8毫秒和1542名观察者 如何优化页面 您的问题可能有两个原因。或者您经常检索数据,并在每次收到数据时尝试重新绘制数据。或者您正在检索大量数据并尝试更新视图中非常大的控件。以下是解决这两个问题的方法: 数据检索速度
this.$scope.$digest()是否有任何影响代码>在每次AJAX下载脚本之后。我正在使用信号器从服务器获取数据。数据一进来,我就想把数据绘制到网格上。当我在ControllerJS中的函数在眨眼的时间内执行时,绘制到UI大约需要3到4秒,这是不可接受的
角巴塔朗说6.8毫秒和1542名观察者
如何优化页面 您的问题可能有两个原因。或者您经常检索数据,并在每次收到数据时尝试重新绘制数据。或者您正在检索大量数据并尝试更新视图中非常大的控件。以下是解决这两个问题的方法:
数据检索速度快于更新速度
为此,您需要在检索到的数据和$scope
数据之间创建一个缓冲区。基本上,无论何时收到新数据,都应该将更改推送到不在范围内的数据结构。通过这种方式,您可以随心所欲地快速获取数据,并且不会影响渲染。然后,您需要一种启发式方法来决定何时重新绘制数据。这可能是基于一个计时器,或者数据更改后的某个东西。此条件为真后,将数据更改复制到$scope
对象,该对象将更新视图
- receive data -> write to non scope buffer
- when some condition is met -> write buffer or buffer changes to $scope
检索到的数据很大,视图又大又复杂
对于这种情况,您唯一的选择是以某种方式简化视图。对于网格,这可能是某种分页或限制约束。有很多角网格可以做这类事情,我只想找一个更适合你的情况。你的问题可能有两个原因。或者您经常检索数据,并在每次收到数据时尝试重新绘制数据。或者您正在检索大量数据并尝试更新视图中非常大的控件。以下是解决这两个问题的方法:
数据检索速度快于更新速度
为此,您需要在检索到的数据和$scope
数据之间创建一个缓冲区。基本上,无论何时收到新数据,都应该将更改推送到不在范围内的数据结构。通过这种方式,您可以随心所欲地快速获取数据,并且不会影响渲染。然后,您需要一种启发式方法来决定何时重新绘制数据。这可能是基于一个计时器,或者数据更改后的某个东西。此条件为真后,将数据更改复制到$scope
对象,该对象将更新视图
- receive data -> write to non scope buffer
- when some condition is met -> write buffer or buffer changes to $scope
检索到的数据很大,视图又大又复杂
对于这种情况,您唯一的选择是以某种方式简化视图。对于网格,这可能是某种分页或限制约束。有很多角网格可以做这类事情,我只想找一个更适合你的情况。瓶颈可能是一次画的项目太多了吗?您是否尝试过使用“limito”指令或其他方式进行本地分页?是的。我也在使用Limito。瓶颈可能是因为一次画的项目太多了吗?您是否尝试过使用“limito”指令或其他方式进行本地分页?是的。我也在应用Limito。我认为选项2不适用于我们的应用程序,因为它是一个日志查看器。我想我应该选择选项1。感谢您的帮助。我认为选项2不适用于我们的应用程序,因为它是一个日志查看器。我想我应该选择选项1。谢谢你的帮助。