0

我使用 javascript 来显示一系列图表(图形),一个在另一个之下。Javascript 脚本从 PHP 脚本请求数据,然后绘制图表并显示它。为一张图表获取数据并显示它并不需要太多时间,但是对于许多图表,时间累积起来很无聊。我想在准备好后显示第一个图表,然后显示第二个图表等,以便用户看到这些图表如何动态附加到页面上,从而使页面越来越长。

基本上这就是我所拥有的:

<script>
var i=0;
$.getJSON('stats.php', function (data) {
    for (chartData in data) {
        i++;
        var chart = new AmStockChart();
        dataSet.dataProvider = chartData;
        // etc. etc.

        $('#stats').append('div id="chartdiv' + i + '"></div>');
        chart.write("chartdiv" + i);
    }
});
</script>

<div id="stats"></div>

这会产生大约 10 个图表,一个在另一个之下,但问题是显示空白屏幕大约 3-5 秒,然后一次显示所有图表。如果我将其限制为仅显示一个图形,它会显示得更快。当每张图准备好时,最好一张一张地显示这些图。

UPD:这是我放置测试数据并在一张图上循环 20 次的jsfiddle 。

4

1 回答 1

1

类似这样的一些事情应该会有所帮助......

var i = 0;
$.getJSON('stats.php', function (data) {
    for (chartData in data) {
        i++;
        setTimeout(function(index,d1){
            return function() {
                  var chart = new AmStockChart();
                  dataSet.dataProvider = data[d1];
                  // etc. etc.

                  $('#stats').append('div id="chartdiv' + index + '"></div>');
                  chart.write("chartdiv" + index);
            }
        }(i,chartData), 3000*i);
    }
});

这是演示

于 2013-10-25T19:18:50.257 回答