为什么我的JavaScript在Safari桌面而不是Chrome或Safari移动版中变慢?

时间:2017-06-27 17:40:38

标签: javascript safari

我有一个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'));

1 个答案:

答案 0 :(得分:0)

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