html5<画布>Opera 11 上速度极慢?画布>
我们用html5的element+JavaScript实现了图形绘制。 在此处查看。
它适用于 Chrome 12、Firefox 3.6 和 4 以及 Opera 11。
在 Chrome 和 Firefox 中,与鼠标交互(悬停和滚动缩放)或使用图形控件切换属性时,绘图速度良好。但在 Opera 11.11 中,重画需要很长时间。我在两台不同的机器上进行了尝试,一台使用 Windows,另一台使用 Linux。
有什么想法为什么会这样吗?或者我怎样才能找出问题所在?
We implemented graph drawing with html5's element + JavaScript. View it here.
It works in Chrome 12, Firefox 3.6 and 4, and in Opera 11.
The drawing speed is fine in Chrome and Firefox when interacting with the mouse (hover and scroll to zoom) or when switching properties with the graph controls. But in Opera 11.11 it takes ages to redraw. I tried on two different machines, one with Windows and the other with Linux.
Any ideas why this is so? Or how I could find out what the problem is?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 Opera 中,使用
context.globalCompositeOperation = "destination-over";
填充每个路径大约 200 层,每层花费了 35 毫秒。幸运的是,我有一种方法可以在不破坏视觉效果的情况下使用
context.globalCompositeOperation = "source-over";
,从而使速度更接近 Firefox 和 Chrome 中的速度。我发现,通过使用以下两行受分析器代码启发,James Black 发布了一个链接:
请注意,Chrome (Webkit) 已经有一个内置的 JavaScript 分析器,并且在 Firefox 中,Firebug 扩展也允许轻松进行分析。但我没有找到 Opera 的类似内容。
Filling each path with
context.globalCompositeOperation = "destination-over";
took 35ms for each of the ~200 layers in Opera.Fortunately there was a way I could use
context.globalCompositeOperation = "source-over";
without destroying the visual, making the speed way closer to the one in Firefox and Chrome.I found out by using the following two lines inspired by the profiler code, James Black posted a link to:
Note that Chrome (Webkit) already has a built in JavaScript profiler, and in Firefox the Firebug Extension also allows easy profiling. But I didn't find anything similar for Opera.