【问题标题】:Crossbrowser chart library跨浏览器图表库
【发布时间】:2012-05-30 19:04:31
【问题描述】:

我正在尝试找到一个 jQuery 图表库,用于在 Web 应用程序中绘制逆变器的测量值,该应用程序能够以正确的性能在各种浏览器上运行。

当我找到 jqPlot、jqChart、gRaphaël 和 HighCharts 时。它们在 FF 和 Chrome 中的性能很好,但在 IE 中却很慢。

使用 jqChart,绘制 4000 个点需要:

  • Firefox 7 为 0.461 秒
  • Google Chrome 14 为 0.222 秒
  • Internet Explorer 8 为 3.440 秒
  • Internet Explorer 6 为 3.994 秒

使用 jqPlot,绘制 4,000 个点需要:

  • Firefox 7 为 0.885 秒
  • Google Chrome 14 为 0.930 秒
  • Internet Explorer 8 为 33.779 秒
  • Internet Explorer 6 为 34.666 秒

我想找一个在所有浏览器中都有良好性能并且避免使用 Flash 的解决方案,你知道吗?

【问题讨论】:

  • 那么 jqChart 有什么问题呢?它在 IE 中慢了大约 6 倍,但比 jqPlot(慢 35 倍)要好得多。所有浏览器都会以不同的方式呈现事物。您正在向其中提供一项艰巨的任务,而这只会极大地突出缺点。也许另一个插件在 IE 中表现出色,但在其他插件中表现不佳......恕我直言,我认为您不会在所有浏览器中找到具有相似性能的插件。

标签: jquery performance charts cross-browser jqplot


【解决方案1】:

我认为你正在打一场失败的战斗。

IE8 及更早版本不提供 SVG 或 Canvas,所有图表库都基于它们。

确实提供了类似于 SVG 的 VML。几乎所有在旧版本 IE 中可用的库都使用它,因为它几乎是浏览器上唯一可用的绘图 API。

为了做到这一点,他们必须进行从原生绘图 API(即 SVG 或 Canvas)到 VML 的转换过程。老实说,它们在 IE8 中工作真是太神奇了(并且有许多类似的库已经决定不支持 IE8)。

基于 SVG 的库在这方面可能会更快,因为 SVG 和 VML 相对相似。将 Canvas 转换为 VML 总是会非常缓慢。

归根结底,IE 确实有其局限性,而速度是一个主要问题。 IE8 的 javascript 引擎比任何其他浏览器都慢几个数量级。 IE 的 VML 比其他浏览器的 SVG 慢。这是双重打击,格式转换只会使情况变得更糟。

最有可能在 IE 中以不错的速度运行的库是 Raphael,因为它从一开始就是为生成 SVG 或 VML 而编写的,因此它永远不需要进行任何转换。但它仍然无法解决 IE 与其他浏览器相比普遍缓慢的问题。

唯一的其他选择是放弃 HTML5 的东西,并使用 Flash。有几个基于 Flash 的图表库可以为您完成这项工作,并且在所有浏览器中的运行速度几乎相同。不过,这有点退步了。

【讨论】:

    【解决方案2】:

    jqChart经过优化,可以处理大量数据,但目前只有折线图,没有标记:

    http://www.jqchart.com/samples/ChartPerformance/LineChart

    您尝试使用哪种图表类型来可视化您的 4000 点?

    【讨论】:

      【解决方案3】:

      我在上一个项目中使用flot。我不使用大数据,但我认为 flot 可以满足您的需求。

      主页说:

      该插件适用于带有 HTML canvas 标签的 Internet Explorer 6+、Firefox 2.x+、Safari 3.0+、Opera 9.5+ 和 Konqueror 4.x+(excanvas Javascript 仿真助手用于 IE

      看看并尝试一下。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-27
        • 2010-12-21
        • 2011-11-15
        • 2011-06-08
        • 2011-03-03
        相关资源
        最近更新 更多