如何确保我的Google图表数据在Javascript中从内存中删除?

时间:2013-12-06 21:29:37

标签: javascript jquery ajax charts google-visualization

我正在使用Google Charts作为Dashboard网络应用,需要提供定期刷新页面的功能。

我设置了一些快速代码,基本上只要JS计时器完成就重新提交表单。

    function timerTick() {
        window.setTimeout("timerTick()", 15000);
        document.forms["input"].submit();
    }  

我有一个表单,它使ajax调用以Json格式获取数据。

然后我浏览数据并填充我的Google图表对象。

问题是,浏览器使用越来越多的内存,并最终崩溃。

我尝试将所有图表变量全局化,并在获取新数据之前将它们设置为null,但这只能帮助少量。

我也尝试了以下内容:

        $("chart_div").empty();
        $("chart_div2").empty();
        $("chart_table").empty();

只是清除DOM中的所有图表数据,但看起来垃圾收集在没有页面刷新的情况下就无法工作。

任何帮助识别可能的内存耗尽或更快地获得垃圾收集工作的方法都会很棒。

抢先一击。

1 个答案:

答案 0 :(得分:3)

在每个可视化上调用clearChart方法 - 这应该清理每个图表的HTML和事件处理程序。然后你可以清空图表对象,它们应该被垃圾收集。

Visualization API之前有过内存泄漏,尽管它们应该在最近的更新中得到修复。如果这不能解决您的泄漏问题,您应该在此处提交错误报告:code.google.com/p/google-visualization-api-issues/issues/list

在此处移动,以便将其标记为答案。

asgallant 12月7日0:36发表评论