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

标签 javascript jquery ajax charts google-visualization

我正在将 Google Charts 用于 Dashboard 网络应用程序,需要加入定期刷新页面的功能。

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

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

我有一个表单可以进行 ajax 调用以获取 Json 格式的数据。

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

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

我试过将所有图表变量设置为全局变量,并在获取新数据之前将它们设置为空,但这只起到了很小的作用。

我也尝试过以下方法:

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

只是为了清除 DOM 中的所有图表数据,但看起来如果不刷新页面,垃圾回收将无法工作。

任何帮助识别可能的内存占用或更快速地进行垃圾收集工作的方法都会很棒。

先行致谢。

最佳答案

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

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

将其移至此处以便将其标记为答案。

asgallant 于 12 月 7 日 0:36 在评论中回答

关于javascript - 如何确保我的 Google 图表数据在 Javascript 中从内存中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20433911/

相关文章:

javascript - PHP AJAX 发布值

javascript - 使用 jquery 和 onchange 获取输入值

javascript - 如何在不使用正则表达式的情况下检查输入是否为表情符号?

javascript - angular.js - 从数组设置 farbricjs Canvas 的宽度和高度

php - 代码未在服务器目录 php 中创建文件

jquery - 使用媒体查询使 slider 响应

AJAX 提交之前的 jQuery 验证

javascript - 如何在 nodejs 中创建双工流?

javascript - 我如何控制 Bootstrap 中列的高度?

javascript - 根据类别添加空格以保存文本文件