gpt4 book ai didi

javascript - 进度条的进度在循环内时不更新

转载 作者:行者123 更新时间:2023-11-28 02:00:11 24 4
gpt4 key购买 nike

for (var i = 0; i < dataArray.length; i++) {
if(((i/dataArray.length)*100)%10 == 0)
$("#progressbar").progressbar({ value: (i / dataArray.length) * 100 });
if (resultArray.indexOf(dataArray[i]) == -1) // check for duplicates
resultArray.push(dataArray[i]);
}

我添加了 if 语句,因为我不想在每个循环上不断更新进度条。循环运行了近 222000 次。有没有更好的逻辑来更新进度?

为什么它从不进入if语句?

最佳答案

您可以使用它,只需对代码进行一些优化即可:

prog_bar = $("#progressbar");
for (var i = 0; i < dataArray.length; i++) {
if(i%100 == 0)
prog_bar.progressbar({ value: (i / dataArray.length) * 100 });
//other code..
}

你会使用for循环吗?没有任何东西“暂停”这个循环,所以它会运行得非常快,你可能只会看到它达到 100%,而不是增长。

演示 here

您可以在“其他代码”运行时调用函数(而不是 for 循环)来更新进度条:

var i = 0;
function update_progress_bar() {
if (i % 100 == 0) {
prog_bar.progressbar({
value: (i / 10000) * 100
});
}
i++;
}

类似 this fiddle

关于javascript - 进度条的进度在循环内时不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546552/

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