javascript 在进行冗长的 javascript 计算时显示进度条?

标签 javascript arrays progress-bar

我正在编写一个基于 javascript 的网络应用程序,其中我必须创建 1000 个 rec 的数组,它生成 0 到 1 之间的随机数

for (var i = 0; i < 1000; i++) {
rec[i] = Math.random();
}

生成所有随机数并将其显示在 div 上需要几秒钟的时间,所以我只想问如何在生成值时显示进度条?

最佳答案

你是否在做一些愚蠢的事情,比如在循环内向 DOM 写入或附加值 - 从而迫使浏览器在每次迭代时尝试重绘屏幕...

示例 1:fiddle - 4000ms+(对我来说)

for (var i = 0; i < 1000; i++) {
    rec[i] = Math.random();
    document.getElementById('out').innerHTML += ('<br/>'+rec[i]);
}

示例 2:fiddle - 10ms(或大约)

for (var i = 0; i < 1000; i++) {
    rec[i] = Math.random();
}
document.getElementById('out').innerHTML = rec.join('<br/>');

生成 1000 个随机数不应花费几秒钟。相比之下,我在一台已经有 8 年历史、配有蹩脚的 Centrino 处理器的笔记本电脑上输入此内容,一个简单的测试在一秒钟内生成了大约 420,000 个随机数。

关于javascript 在进行冗长的 javascript 计算时显示进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546725/

相关文章:

javascript - JSON stringify 将 0 转换为 null

javascript - jQuery 旋钮上的覆盖单位在页面重新加载时无法正确重绘

c - 如何在C中的结构中打印字符串

php - 使用函数参数排序编号对 PHP 数组进行排序

javascript - jQuery 和 Perl : progress bar based on state of "pipeline file", 动态 ajax

android - 当 ProgressBar 在 android 中可见时如何禁用用户交互?

java - 进度对话框有问题吗?

JavaScript 非持久性安全问题

javascript - 尽管我确实将 jQuery 添加到了 HTML 文件中,但是 fadeIn 并不是一个函数

javascript - 将多个对象转换为一个具有相同键、值的对象作为数组