【问题标题】:Optimising flot javascript in IE在 IE 中优化 flot javascript
【发布时间】:2012-02-02 15:18:24
【问题描述】:

我的客户需要使用 IE8。我正在使用 flot 图形库,但在 IE 中遇到了 javascript 性能的限制。

当有 1000 个点时,图表最多需要 10 秒才能显示。我已经看到了一种可能的 solution 来加快它的速度,但不确定它的效果如何。

有人试过为 IE 优化 flot 吗?

如果有一个在 IE8 中性能优于 flot(即没有画布)。

【问题讨论】:

  • 我开始认为有一个有趣的道德问题,围绕着努力帮助故意针对旧版本 IE 的新项目取得成功。
  • 放弃吧... IE6 简直就是垃圾,应该用旧的 AOL cd 碎片折磨死。帮自己一个忙,只选择 IE8+。 8/9 版本有很多改进的 JS 引擎,它们几乎可以绕着 IE6 的尸体运行。
  • 即使在 IE8 中性能也很慢,并且有很大比例的公司在使用它。如果 IE8 有一些优化,我会很高兴。
  • 我已经删除了对 IE6 的提及,因为这不是主要内容。
  • 您是否在绘图上绘制点符号(每个点的圆圈)?根据我对 Canvas 和 SVG javascript 绘图库的经验,这是在大量点上最昂贵的操作。您的链接通过绘制一次圆圈并一遍又一遍地复制它来“纠正”速度问题。

标签: php javascript performance internet-explorer flot


【解决方案1】:

你可以试试jqChart。折线图的渲染速度针对处理大量数据进行了优化。

看看这个示例:

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

【讨论】:

    【解决方案2】:

    您可能想看看Highcharts。它是compatible with IE 6,这个time series demo 中的图表有1096 个点。

    我已经成功地在我的应用程序中使用了这个库,尽管您必须自己评估它以查看它是否满足您的性能要求。

    【讨论】:

    • 不确定用户的要求,但如果您在每个位置渲染点符号,如果 HighCharts 不比基于画布的绘图库慢,我会感到惊讶。您还会消耗大量内存,因为每个 SVG 节点都是 DOM 的一部分。
    【解决方案3】:

    你唯一的希望是找出一种方法,不要一次绘制所有点。例如,如果您尝试在 600x300 的图形上绘制 10,000 个点,则大多数点可能几乎完全重叠。

    大多数人在这些情况下所做的是预先计算(服务器端)平均值,或者任何需要的聚合类型,然后将其绘制出来。然后,使用选择插件允许他们放大图表的较小区域,并仅在该区域绘制完整的数据集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-18
      • 2020-06-24
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 2019-01-27
      相关资源
      最近更新 更多