【发布时间】:2021-06-28 13:29:57
【问题描述】:
在 p5.js 中,我编写了这个简单的线性循环,在屏幕上的随机点之间绘制线条。
如果我循环 99 999 次,屏幕会立即显示。
999 999 次,需要十秒
9 999 999 它会挂起浏览器。
为什么对于具有基本操作的线性循环会发生这种情况?处理生命周期有什么我不理解的吗?就像画布何时更新(每行或分批或什么)?我需要将我的代码放在异步循环中吗?
function setup()
{
createCanvas(1920, 965, P2D);
colorMode(HSL, 100); // hue saturation lightness
noLoop();
background(100,100,100,255); //solid white background
for (let i = 0; i < 9999999; i++)
drawLines()
}
function drawLines()
{
stroke(60, random(60,100), random(0,100), 255);
const p1 = getRandomPoint();
const p2 = getRandomPoint();
line(p1.x, p1.y, p2.x, p2.y);
}
function getRandomPoint()
{
return { x: random(0, width), y: random(0, height) };
}
【问题讨论】:
-
您可能只是在绑定事件线程,这会使浏览器无响应。我不写 JS,但阻止
setup可能不是一个好主意。通常,您希望避免阻塞,并应尽可能依赖异步代码。
标签: javascript processing p5.js