javascript/jqueryでforループを一時停止することは可能ですか?
私は$.each
、63 の長い配列を実行する を持っています。これには、for
内部に別for
の があり、さらに別のfor
があります (Makes each
> for
> for
> for
)。for
これで、配列内の各ループが作成され、これにより 63^4 (Equals 15752961) さまざまな組み合わせで、時間がかかります...
そうそう、2kの組み合わせで2秒間一時停止することは可能ですか?
ループを一時停止したい理由は、UI のロックを解除するためです...
コード:
var $arr = ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9"],
len = $arr.length,
l = 0,
$("body").delay(1000).show(0, function(){
$.each($arr, function(index, val){ // 63
for(var i = 0; i < len; i++){ // 3969
for(var j = 0; j < len; j++){ // 250047
for(var k = 0; k < len; k++){ // 15752961
thing = val+i+j+k;
l++;
$("#loading").text(l+"/15752961");
console.log(l+"/15752961");
$("<div>"+thing+"</div><br />").prependTo("body");
}
}
}
})
})
Ps。誰かが私の質問を解決できると思うなら、そうしてください:D
/* 編集 */
このサーバー側を実行しようとすると、サーバー エラーが発生しますforeach
。for
$smaa = range("a","z");
$store = range("A","Z");
$tal = range("0","9");
$arr = array_merge($smaa, $store, $tal);
for($i = 0; $i < $count; $i++){ // 62
for($j = 0; $j < $count; $j++){ // 3844
for($k = 0; $k < $count; $k++){ // 238328
for($l = 0; $l < $count; $l++){ // 14776336
$finish[] = $arr[$i].$arr[$j].$arr[$k].$arr[$l];
}
$finish[] = $arr[$i].$arr[$j].$arr[$k];
}
$finish[] = $arr[$i].$arr[$j];
}
$finish[] = $arr[$i];
}
foreach($arr as $first){ // 62
$finish[] = $first;
foreach($arr as $second){ // 3844
$finish[] = $first.$second;
foreach($arr as $third){ // 238328
$finish[] = $first.$second.$third;
foreach($arr as $fourth){ // 14776336
$finish[] = $first.$second.$third.$fourth;
}
}
}
}
両方を同時に使用しないことに注意してください