更新图表时不会导致内存泄漏的图表库

发布于 2024-10-22 00:45:44 字数 431 浏览 4 评论 0原文

我想构建一个页面,其中包含基于使用 AJAX 从服务器异步获取的数据的交互式刷新图表。我真的很喜欢 jqPlot,但是当尝试定期更新图表时(通过调用 replot(),没有页面刷新),会导致巨大的浏览器内存泄漏。这似乎是所有主要浏览器上都发生的众所周知的问题。

我还没有尝试过 Flotprotovis,但快速谷歌搜索显示它们似乎有同样的问题。

您是否知道有哪些 JavaScript 图表库在多次更新图表后不会引入内存泄漏?

I want to build a page with interactively refreshing charts based on the data that is being fetched from the server asynchronously using AJAX. I really like jqPlot, but when trying to update the graph periodically (by calling replot(), without page refresh), it causes a huge browser memory leak. It seems to be a well known issue occurring on all major browsers.

I haven't tried Flot and protovis, but quick googling reveals that they seem to have the same problems.

Are you aware of any JavaScript charting library that does not introduce memory leak after several updates of the chart?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

錯遇了你 2024-10-29 00:45:44

您可以查看Highcharts快速谷歌搜索不会这似乎表明内存泄漏是一个很大的问题。

You could take a look at Highcharts. A quick googling doesn't seem to indicate that memory leaks are much of an issue.

月亮是我掰弯的 2024-10-29 00:45:44

为了避免 jqPlot 内存泄漏,您必须删除绑定并销毁图表:

var chart;

function yourTimedFunction(data) {
    if (chart) 
    {
        $('#chartDiv *').unbind(); // iexplorer
        chart.destroy();
    }
    chart = $.jqplot('chartDiv', ............. ); 
}

to avoid jqPlot memory leak you have to remove binding and destry your chart:

var chart;

function yourTimedFunction(data) {
    if (chart) 
    {
        $('#chartDiv *').unbind(); // iexplorer
        chart.destroy();
    }
    chart = $.jqplot('chartDiv', ............. ); 
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文