0

当我尝试渲染具有大量数据点的条形图时,我遇到了一个问题。但这仅发生在 FireFox 中。10 秒后出现一个弹出窗口说脚本无响应,如果我继续,大约需要 20 秒才能显示。我已经建立了一个独立的例子http://jsfiddle.net/tankchintan/UWB8h/5/

在 Chrome 中,虽然它需要大约 5 秒,但它仍然可以毫无问题地呈现。我想知道是否有解决此问题的方法?或者我可以做些什么来缩短响应时间吗?大约有 1000 行,恕我直言,这不是那么高。

谢谢您的帮助!

4

2 回答 2

2

你以两种方式伤害你的用户:

  • 首先,他们必须等待几秒钟才能呈现页面并且整个浏览器冻结,因为 JS 引擎没有响应

  • 但更重要的是,您正在伤害他们,因为您正在显示一个包含近 1000 个水平条的条形图

第二点其实更重要。当然,浏览器的 JavaScript 性能各不相同(众所周知,Chrome 速度更快,但 Firefox 并没有挂在我的电脑上——但我知道你的意思)。可能有一天所有的浏览器都会很高兴地立即呈现这个图表。

但是您的用户会喜欢 10 个屏幕长的图表吗?想象一下在一个表中包含数千行的网页。直截了当 - 考虑不同的数据表示:可能在 20 个样本后截断数据并显示额外的“其他... ”栏?

上遇到了类似的问题——我在同一页面上渲染了 10 多个简单的图表。就像您的情况一样,Firefox 尖叫着脚本运行时间过长。我通过暂停渲染一个图表来修复它。该页面就像一个魅力,更加敏感和愉快。

于 2012-06-07T13:55:19.733 回答
0

我同意显示这么多数据点的难度。这种情况主要发生在其他类型图表中的 FF 中,在我的例子中是柱形图。

这里的不同之处在于,在大型数据集上显示趋势可能是有原因的,而 Highcharts 缩放功能使此类图表更有用。用户可以在更大的集合中发现高点和异常,并放大以查看该区域内的各个列。同样使用柱形图,整个演示文稿都在一页上。

也就是说,无响应的脚本问题仍然存在,无论这种类型的要求如何,都需要要求用户在呈现图表之前指定数据的子集。

于 2013-01-30T19:55:54.103 回答