【发布时间】:2013-09-20 13:47:19
【问题描述】:
我们正在创建一个画布地图应用程序,我们想知道哪种方法比另一种更好;为图层的每个图块创建画布或创建单个画布。
如果我们使用每个图块的画布选项,我们将能够;
- 为每个图块的平移效果制作淡入淡出动画,
- 在缩小时,当图层尺寸小于屏幕尺寸时,我们将 绘制较小的区域(例如只有 2-3 个小画布)。
但是;
- 会有不止一个上下文和更多的绘制操作。
- (我认为)更多的内存使用。
所以我们无法决定选择哪个选项。性能对我们来说非常重要,因为我们正在处理大数据。但我们也关心使用 css3 进行平移和缩放等动画。你有什么建议?
【问题讨论】:
-
第三个命题怎么样?启用了多线程的单个画布。关键字:Web Workers。另见this SO question。谷歌搜索导致MSDN article on performance improvements of a canvas render using WebWorkers。
-
谢谢!我认为这对性能真的有帮助。如果我的表现有所改善,我会尝试并给你回信。
-
@Derija93 从您链接到的文章:“需要注意的重要一点是,在最近的计算机上,差异可能很小,甚至有利于没有工人的代码。内存复制的开销必须由工人使用的复杂代码来平衡。“
-
@Ken-AbdiasSoftware 好吧,JavaScript 从来没有打算成为一种多线程脚本语言。这个问题确实没有理想的解决方案,每个都有其优点和缺点。使用工人确实可能会导致高度复杂的代码......就像我说的,这只是一个提议。 ;)
-
@HalilIbrahim 你也可以考虑这个库:leafletjs.com
标签: javascript html css canvas map