我有一个谷歌饼图,每5秒刷新一次。每次刷新时,饼图都在扩展。然后在5-6刷新之后,它就消失了。在所有browsers.Please建议中,我都面临着这个问题
/**
* 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);发布于 2013-08-08 18:41:13
如果没有在CSS中的图表选项或容器div中显式设置维度,则会得到如下所示的流程:
获取容器维度->用作图表维度->浏览器由于页边距/填充->重绘->提取(更大)容器维度->重复使用扩展容器
您必须在图表的选项中或容器元素的CSS中显式地设置图表的尺寸,以修复这个问题,例如:
new google.visualization.PieChart(document.getElementById('visualization')).
draw(data, {
title: "So, how was your day?",
height: 300,
width: 400
});或者:
#visualization: {
height: 300px;
width: 400px;
}当您多次调用drawVisualization函数时,您将一次又一次地创建新的DataTables和图表对象,这些对象可能不会被垃圾收集,因此可能会出现问题。最好是刷新DataTable中的数据并用新数据重新绘制现有图表,而不是每次创建新对象:
drawVisualization () {
var data = ...;
var chart = ...;
chart.draw(...);
setInterval(function () {
// refresh data and redraw chart
}, 5000);
}https://stackoverflow.com/questions/18121125
复制相似问题