Crossbrowser图表库

时间:2011-10-25 16:15:21

标签: jquery performance charts cross-browser jqplot

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

到目前为止,我找到了jqPlot,jqChart,gRaphaël和HighCharts。它们在FF和Chrome中表现不错,但在IE中表现非常慢。

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

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

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

  • 0.885 s for Firefox 7
  • 0.930 s for Google Chrome 14
  • 33.779 s for Internet Explorer 8
  • 34.666 s for Internet Explorer 6

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

3 个答案:

答案 0 :(得分:3)

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

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

提供提供VML,类似于SVG。几乎所有在旧版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的图表库可以为您完成这项工作,并且在所有浏览器中的工作速度几乎相同。不过,这是一个落后的步骤。

答案 1 :(得分:0)

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

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

您尝试使用哪种图表类型来显示您的4000点?

答案 2 :(得分:0)

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

主页说:

  

该插件适用于Internet Explorer 6 +,Firefox 2.x +,Safari 3.0 +,Opera 9.5+和Konqueror 4.x +以及HTML canvas标记(excanvas Javascript仿真帮助程序用于IE&lt; 9)。< / p>

看看并尝试一下。