Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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 函数在ng repeat中的性能_Javascript_Angularjs - Fatal编程技术网

Javascript 函数在ng repeat中的性能

Javascript 函数在ng repeat中的性能,javascript,angularjs,Javascript,Angularjs,这样写和重复有什么区别吗 <div ng-repeat="item in getItems()"> $scope.getItems = function() { return Object.values(objA).concat(Object.values(objB)); } 在另一种情况下,我将维护数组项每次objA和objB更改,正如我在上面所评论的,问题中的后一个与第一个相比将有轻微的优势 这将在最初加载的项上执行,并在每个$digest周期对表达式求值 这里,您正

这样写和重复有什么区别吗

<div ng-repeat="item in getItems()">
$scope.getItems = function() {
  return Object.values(objA).concat(Object.values(objB));
}

在另一种情况下,我将维护数组
每次objA和objB更改

,正如我在上面所评论的,问题中的后一个与第一个相比将有轻微的优势

这将在最初加载的项上执行,并在每个$digest周期对表达式求值


这里,您正在调用一个函数,该函数将在$digest cycle期间多次执行,并且您正在连接函数中的数组,这在性能方面是非常昂贵的。

的确如此!第二个将比第二个稍有改进first@Sajeetharan,性能如何…除非处理大型问题,否则不会有太多性能问题array@Sajeetharan这是因为在第一个循环中,函数将在每个
摘要
循环中运行,但在第二个循环中不会运行吗?是的,您正在对数组进行浓缩!你能分享一个链接来支持你所说的吗?或者是一个如何执行该函数N次的例子。@EleazarEnrique这是从经验中得出的,当我找到要添加的链接时,是否有任何错误?好的,我知道了,但是,很高兴了解AngularJs团队的任何文档。我从未意识到这一点,因为我认为该指令将缓存
getItems
的结果。但是,正如你所说,你已经有过这种行为的经验。谢谢@您可以在中找到ng repeat calls
$watchCollection
。它的工作是在每一个$digest循环上,这将需要对表达式进行求值/function@AlekseySolovey完美的谢谢分享!
$scope.getItems = function() {
  return Object.values(objA).concat(Object.values(objB));
}