为什么我的JavaScript在Safari桌面上放慢速度,而不是Chrome或Safari手机



我有一个JavaScript,可以进行大量计算,并以许多阵列的形式绘制了Google Charts对象的许多阵列的形式。在不重新加载页面的情况下,我可以应用新值并一次又一次地运行分析,每次绘制结果。奇怪的是,这在Chrome中工作正常,但是在MacOS上的Safari中,每个新分析都会变慢,并且需要重新加载页面以使其恢复速度。但是,在Chrome台式机,移动设备以及Safari Mobile中,它一直以最高的速度运行,而不需要重新加载。我怀疑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'));

您应该理想地使用新数据更新图表,而不是每次创建它们。这是为了避免任何类型的垃圾收集延迟。

最新更新