[英]How to optimize jquery chosen plugin for loading more than 50k results
[英]how can I call a recursive function that calls more than 50k times in javascript?
我知道浏览器 Javascript 堆栈大小限制,但有什么办法可以打破它? 当我在网上阅读Javascript 堆栈大小限制时,我找不到克服浏览器堆栈大小限制的方法。 是否有任何技巧可以在 java-script 或 angular.js 中做到这一点。
例如
var i=0;
rec(para);
function rec(para){
if(para>=50000){
}
else{
$scope.items.push(i);
rec(i++)
}
}
是否可以将 50000 个数据添加到数组中..
使用异步方式
function func1(n, callback)
{
//do some work
//check for exit condition
if (n == 1)
{
callback();// invoke callback handler and pass the results to it.
}
else
{
setTimeout(function(){
func1(); //call it again with modified parameters
});
}
}
一个缺点是您将无法再从此方法返回值。
是否可以将 50000 个数据添加到数组中..
是的,通过迭代。 在你的情况下,你只需要做
function rec()
{
for( var counter = 0; counter < 50000; counter++ )
{
$scope.items.push(counter);
}
}
如果您的环境允许,请尝试使用原生 ES5/6 方法。 您可以在一个步骤中使用fill
和map
将大量连续的数字序列添加到数组中:
// assuming $scope.items is already initialized array
$scope.items = $scope.items.concat((Array(50000).fill(0).map(function(e,i){return i})));
http://www.2ality.com/2013/11/initializing-arrays.html,Array.fill,Array.map 。 _
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.