首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >饼图在每次刷新时展开

饼图在每次刷新时展开
EN

Stack Overflow用户
提问于 2013-08-08 08:17:04
回答 1查看 304关注 0票数 0

我有一个谷歌饼图,每5秒刷新一次。每次刷新时,饼图都在扩展。然后在5-6刷新之后,它就消失了。在所有browsers.Please建议中,我都面临着这个问题

代码语言:javascript
复制
/**
* Function for Google PieChart
**/   
    function drawVisualization() {
      // Create and populate the data table.
      var data = google.visualization.arrayToDataTable([
        // dynamic data
      ]);

      // Create and draw the visualization.
      new google.visualization.PieChart(document.getElementById('visualization')).
          draw(data, {title:"So, how was your day?"});
    }

    /*
     *Extjs Pannel for Pie Chart
    **/
    {xtype:'label',
             id:'pannelid',
             width:'100%',
             html : '<table width="100%"><tr><tr> <td> <div id="visualization" align="left"> </div></td></tr></table>'
    }

    /**
     *For refreshing Pie Chart every 5 sec
    **/
    setInterval(function(){
    drawVisualization();
    },5000);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-08 18:41:13

如果没有在CSS中的图表选项或容器div中显式设置维度,则会得到如下所示的流程:

获取容器维度->用作图表维度->浏览器由于页边距/填充->重绘->提取(更大)容器维度->重复使用扩展容器

您必须在图表的选项中或容器元素的CSS中显式地设置图表的尺寸,以修复这个问题,例如:

代码语言:javascript
复制
new google.visualization.PieChart(document.getElementById('visualization')).
    draw(data, {
        title: "So, how was your day?",
        height: 300,
        width: 400
    });

或者:

代码语言:javascript
复制
#visualization: {
    height: 300px;
    width: 400px;
}

当您多次调用drawVisualization函数时,您将一次又一次地创建新的DataTables和图表对象,这些对象可能不会被垃圾收集,因此可能会出现问题。最好是刷新DataTable中的数据并用新数据重新绘制现有图表,而不是每次创建新对象:

代码语言:javascript
复制
drawVisualization () {
    var data = ...;
    var chart = ...;
    chart.draw(...);

    setInterval(function () {
        // refresh data and redraw chart
    }, 5000);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18121125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档