为什么此HTML5应用程序的性能会因协调负载而下降

时间:2013-06-12 04:02:13

标签: javascript html5 performance html5-canvas

我在HTML5中写了这个Mandelbrot plotter,它有一个我可以理解的可重现的性能错误。

在Plot Controls部分中,可以将坐标保存到选择列表中,以便以后可以直接返回。但是,如果我选择一组已保存的坐标,然后单击“加载”,则性能突然变得非常慢,起初我认为它是挂起脚本(它最终将开始按照预期开发图像)。 / p>

我无法弄清楚原因。加载按钮的onclick处理程序(第258行)只调用gotoCoord()(第457行)。 gotoCoord函数只是设置了几个绘图参数(xOff,yOff,fMag),然后调用initDisplay()。我在其他几个地方做了那些没有不良影响的事情(第124行mousedown,第386行zoomOut,第394行zoomIn)。我无法弄清楚gotoCoord有什么不同。

我已经完成了重复的比较测试,导航到绘图并计算开发图像所需的时间。然后我保存了坐标并加载它们。性能受到了极大的打击。

还有其他人看到我缺少的东西吗?

1 个答案:

答案 0 :(得分:1)

这个问题已经回答了,所以只需将其从未答复的清单中删除。

@ DCoder的评论解决了它。绘图参数存储在localStorage中,并从那里加载选择列表。当然,从localStorage加载时,值都将是字符串。这就是gotoCoord与其他功能的不同之处。由于参数在图中使用(第589行和第590行),因此每个帧中每个像素的每次计算都必须将文本转换为数字!

三个小加号修正了它。