gpt4 book ai didi

javascript - 如何在每次达到一定计数后在数组中暂停

转载 作者:行者123 更新时间:2023-12-03 12:36:31 25 4
gpt4 key购买 nike

我在 javascript 中有一个符号数组。

对于数组的每个元素,我将其发送到服务器,并且每 10 个元素连续执行此操作
使用 setTimeout 秒。

我的要求是,一旦我处理完数组中的一半符号,我想暂停操作3秒。

(数组的大小固定为 100 ,所以如果达到 50 就可以直接使用条件)

我已经用示例程序尝试过这个,

我观察到,当页面第一次加载时,达到2个符号后,它会持续2秒。从下一个迭代开始,它就不再暂停。

有人可以帮我吗

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
var symbols = ["One","Two","Three","FOur"];
var i = 0;

function doPoll() {
$.each( symbols, function( index, value ){
loadXMLDoc(value);
});
setTimeout(doPoll, 10000);

}


$(document).ready(function () {

doPoll();
});


function loadXMLDoc(value)
{
i++;
alert(value);
if(i==2)
sleep(1000);


}

function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
</script>
</head>
<body>
</body>
</html>

最佳答案

在您的情况下,您可以简单地迭代数组的前半部分(使用正常的 for 循环),使用 setTimeout 然后迭代数组的后半部分数组:

function doPoll() {
var middle = Math.round(symbols.length / 2);
for (var i = 0, l = middle; i < l; i++) {
loadXMLDoc(symbols[i]);
}
setTimeout(function() {
for (var i = middle, l = symbols.length; i < l; i++) {
loadXMLDoc(symbols[i]);
}
setTimeout(doPoll, 10000);
}, 2000);
}

另请参阅:Best way to insert a 'pause' in a .each enumeration

关于javascript - 如何在每次达到一定计数后在数组中暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com