Почему гистограмма не отображается, если я читаю данные из базы данных MySQL

Я хотел воспроизвести гистограмму на основе этого примера 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

0

Решение

Попробуйте использовать библиотеку 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++;
});
}

Подробнее об очереди

Подробнее о D3 и MySQL.

1

Другие решения

как насчет запуска этого скрипта после загрузки всех доменов ($(document).ready()), удачи.

1

По вопросам рекламы [email protected]