Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用此.$scope.$digest()的影响;_Javascript_Angularjs_Angular_Signalr - Fatal编程技术网

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。谢谢你的帮助。