【发布时间】:2021-09-13 23:59:19
【问题描述】:
我制作了一个基于网络的概念验证,它在整个屏幕上绘制了数千个彩色 div,并通过在每个动画帧中更改每个 div 的颜色来为整个页面设置动画。 (显然是 JS 完成了这项工作。)令人震惊的是,性能远没有我想象的那么糟糕,但仍然有点糟糕。在使用 Chrome 浏览器分析器进行检查后,我发现性能瓶颈是,not 令人震惊,因为必须通过为每个 div 构建一个字符串来生成 每个 div 的颜色,每个动画帧。字符串连接是出了名的慢。我看到这个 web 应用程序 90% 以上的性能都被一行代码消耗掉了,而且是生成样式颜色字符串的代码。
为清楚起见,这是有问题的行:
// currentBox properties red, green, and blue are simple integers
element.style.backgroundColor =
`rgb(${currentBox.red}, ${currentBox.green}, ${currentBox.blue})`
我正在研究在 HTML 画布上绘图,希望能够用字符串以外的东西定义绘图/填充颜色,以减少这个性能瓶颈。
除了使用字符串之外,还有什么方法可以为 div/canvas 样式(尤其是颜色)着色?还是我需要一直深入到 WebGL 领域之类的?
我引用的是 MDN here。这使得字符串似乎是 CSS 或画布样式的唯一选择。但我希望有人知道另一个技巧。
【问题讨论】:
标签: javascript css html5-canvas