我想基于此示例http://bl.ocks.org/mbostock/3048450再现直方图,但从sql表读取输入数据。
要将数据读取为“值”是可行的,但是只有当我从SQL读取警报后发出警报时,这些栏才会显示在浏览器中。

我假设在读取所有数据之前渲染svg?

var values = [];
var counter = 0;

d3.json("php/data2.php", function(error, arrw) {
    arrw.forEach(function(d) {
        values.push(parseFloat(arrw[counter]["close"]));
        counter++;
    });
});

alert(); // without this alert the bars are not displayed in the svg

最佳答案

尝试使用D3库queue()来定时更新。

所以像这样:

queue()
  .defer(d3.json, "php/data2.php")
  .await(ready);

function ready(error, arrw) {
  //now you can use the data set in your general update paradigm
  //and did not have to wait the data to load sequentially

 arrw.forEach(function(d) {
        values.push(parseFloat(arrw[counter]["close"]));
        counter++;
});
}


More about queue

More about D3 and mySQL.

10-05 19:44