画布的最大数量(用作图层)是多少?

3
我正在使用JavaScript编写HTML5画布应用程序。我使用多个画布元素作为图层,支持动画而不必在每个帧重新绘制整个图像。
在这种方式下,我可以将多少个画布元素叠加在一起以获得适当的结果(当然,在所有HTML5平台上)?
谢谢。

1
测试非常简单。只需创建一个循环,然后查看浏览器何时会抛出异常即可。 - c69
有一篇很好的文章介绍了canvas图层 - orustammanapov
2个回答

4
我想你在实际性能上可能会碰到瓶颈,而不是达到硬性规定的限制,这个限制在几千个和 2,147,483,647 之间,具体取决于浏览器和你所测量的内容(DOM 上允许的物理元素数量或最大允许的 z-index)。
这与我对几乎任何包含“最大数量”短语的问题的另一个喜欢回答相关——如果你必须问,那么你可能正在错误地处理它。采用与预期设计一致的方法几乎总是可行的,并避免了这些令人不快的模糊问题,比如“如果我尝试在 iPhone 上渲染 32,768 个堆叠的画布元素,会不会导致用户的 iPhone 熔断?”

3
这是一个关于DOM限制的问题,它们很大。我预计你会在达到硬限制之前遇到性能瓶颈。
在你的情况下,关键是准备一些简单的基准测试,动态生成画布(任意数量),填充内容并将其添加到DOM中。你应该能够以这样的方式构建你的测试,A)如果有硬限制,你将会发现它(使用可识别的画布内容或异常处理),或者B)如果有性能限制,你将会发现它(使用分析或计时器)。然后在各种浏览器上执行这些测试,以确定你的实际“限制”。
此外,Facebook HTML5游戏倡议提供了很好的资源,包括链接到文章和开源基准测试工具,涉及和测试类似于你的不同策略。链接在此:https://developers.facebook.com/html5/build/games/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接