我正在开发一个移动网络骰子模拟器。最初的原型在这里:http ://dicewalla.com
我目前有一个大画布,可以在其中绘制所有骰子。我计划以更 MVC 且更易于更新的方式重新编写代码。我认为为每个骰子对象生成一个小画布比在大画布上绘制所有骰子并不断更新大画布更容易。
我的问题是,让浏览器创建大量小画布而不是一个大画布是否会对性能造成不良影响。很难在本地测试,我希望这里的人可能知道最佳实践是什么。
我正在开发一个移动网络骰子模拟器。最初的原型在这里:http ://dicewalla.com
我目前有一个大画布,可以在其中绘制所有骰子。我计划以更 MVC 且更易于更新的方式重新编写代码。我认为为每个骰子对象生成一个小画布比在大画布上绘制所有骰子并不断更新大画布更容易。
我的问题是,让浏览器创建大量小画布而不是一个大画布是否会对性能造成不良影响。很难在本地测试,我希望这里的人可能知道最佳实践是什么。
多个画布通常可以提供更好的性能,因为您可以有选择地重新渲染。
如果您只有一个画布并且想要更新一个骰子,您通常必须重新绘制整个画布。另一方面,多个画布允许您仅更新需要重绘的骰子。这就是效率的提高。
此外,在加载 1 个画布与 100 个画布时,您不会看到任何明显的差异。
在性能方面,如前所述,如果您不定期更新图形,则 1-100 个画布元素之间应该没有什么区别。(即:静态图形/无动画)
网络上关于多个画布的大多数参考资料都倾向于处理您有多个图层并且需要在其他事物之上处理具有透明度的绘图的情况。
话虽如此,您对 dicewalla 所做的事情看起来不会从拥有多个画布中获得任何收益。
如果更新整个画布是一个瓶颈,您还可以有选择地重绘单个画布的区域以获得更好的性能。这为您提供了拥有多个画布的性能优势,而无需处理管理和创建这些元素。