【发布时间】:2011-06-04 03:26:28
【问题描述】:
我正在构建一个使用 SVG、Canvas,当然还有 HTML 的网页。这个页面的想法是动画在画布上重绘一些 svg 路径。我喜欢重绘的路径使用命名空间属性进行注释,所有其他路径都按原样显示。这一切都很好!在我向页面添加一些内容时,性能泄漏出现在最后两个小时。 但首先是页面设置的一点说明:
SVG 和 Canvas 的宽度均为 4000 * 4000 像素,并直接位于一个容器 div 中。从一个“页面”到另一个意味着补间这个容器的左上边缘。这也很好,因为关于插入文本的讨论转向使用 html div 容器,而不是 svg 本身。 因此,我插入了第三个容器 div,其中存储了所有文本,并且在加载 svg 后,它们被绝对定位。 对于每个 div,我都添加了“泛补间”,甚至绘图性能也下降到了一个太低的点。 我正在寻找将性能恢复到用户可以接受的水平的方法。我的想法之一是将文本 div 设置为显示:无,或可见性:隐藏,只要它们实际上没有显示。另一种选择是仅对 svg 和画布进行补间,在这一步完成放置 text-div-container 之后。但我目前不确定哪种解决方案更好,或者是否没有更好的解决方案。所以如果有人有想法,请告诉我。
感谢阅读! 问候菲利普
【问题讨论】:
-
请指定您正在测试的浏览器和版本 -- 不同浏览器之间的性能可能会有很大差异。
-
我是用firefox4开发的,但也可以在ie9,最新的safari,chrome和opera中运行
-
所以,我刚刚实施了解决方案,将所有 html 元素设置为可见性:当它们不显示时隐藏并且所有情况都变得更好了,或者换句话说:情况没有不要变得更糟:)
标签: javascript html canvas svg