我有一个javascript,可以进行大量计算,并以Google Charts对象的形式绘制许多数组的结果。在不重新加载页面的情况下,我可以应用新值并一次又一次地运行分析,每次都绘制结果。奇怪的是,这在Chrome中运行良好,但在macOS上的Safari中,每次新分析都会变慢,并且需要重新加载页面以使其恢复速度。但是,在Chrome桌面和移动设备以及Safari移动设备中,它始终以最快的速度运行,无需重新加载。我怀疑Safari macOS正在缓存一些东西并填充内存。我正在使用每次创建的一堆图形对象(下面的代码)(但可能也是垃圾收集)。
var chart01 = new google.visualization.LineChart(document.getElementById('chart_01'));
var chart02 = new google.visualization.LineChart(document.getElementById('chart_02'));
var chart03 = new google.visualization.LineChart(document.getElementById('chart_03'));
var chart04 = new google.visualization.LineChart(document.getElementById('chart_04'));
var chart05 = new google.visualization.LineChart(document.getElementById('chart_05'));
var chart06 = new google.visualization.LineChart(document.getElementById('chart_06'));
var chart07 = new google.visualization.LineChart(document.getElementById('chart_07'));
var chart08 = new google.visualization.LineChart(document.getElementById('chart_08'));
var chart09 = new google.visualization.LineChart(document.getElementById('chart_09'));
var chart10 = new google.visualization.LineChart(document.getElementById('chart_10'));
var chart11 = new google.visualization.LineChart(document.getElementById('chart_11'));
var chart12 = new google.visualization.LineChart(document.getElementById('chart_12'));
var chart13 = new google.visualization.LineChart(document.getElementById('chart_13'));
var chart14 = new google.visualization.LineChart(document.getElementById('chart_14'));
var chart15 = new google.visualization.LineChart(document.getElementById('chart_15'));
答案 0 :(得分:0)
理想情况下,您应该使用新数据更新图表,而不是每次都创建它们。这是为了避免任何类型的垃圾收集延迟。