Я использую Chart.js(http://www.chartjs.org/docs/) для создания диаграмм.
Мне нужно получить данные из запроса Ajax, и диаграмма будет реагировать.
В моем HTML-коде я добавил холст следующим образом:
<div>
<canvas id="userscreated" class="plot" data-url="/stats/userscreated"></canvas>
</div>
И в моем javascript (JQuery) коде есть:
var data2;
$.ajax({
url: $('#userscreated').data('url'),
async: true,
dataType: 'json',
type: "get",
}).done(function (data) {
data2 = data;
// Draw chart
var context = $('#userscreated').get(0).getContext("2d");
var wrapper = $('#userscreated').parent();
var width = $('#userscreated').attr('width', $(wrapper).width());
new Chart(context).Line(
{
labels: data.Dates,
datasets: [
{ fillColor: #404040, data: data.Users }
]
},
{ animation: false }
);
});
// Redraw the chart with the same data
$(window).resize(function () {
var context = $('#userscreated').get(0).getContext("2d");
var wrapper = $('#userscreated').parent();
var width = $('#userscreated').attr('width', $(wrapper).width());
new Chart(context).Line(
{
labels: data2.Dates,
datasets: [
{ fillColor: #404040, data: data2.Users }
]
},
{ animation: false }
);
});
<сильные > ПРОБЛЕМЫ
-
Диаграмма не изменяется при изменении размера окна.
-
Есть ли лучший код для этого? Я думаю, что повторяю много кода.
-
В Google рисунок выполняется быстро. В firefox иногда он висит на некоторое время. Что-то не так с моим кодом?
-
Если запрос будет асинхронным или нет?
Спасибо, Miguel