我正在使用 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 }
);
});
问题
- 图表未在窗口调整大小时调整大小。
- 有更好的代码来做到这一点吗?我想我重复了很多代码。
- 在谷歌中,绘图速度很快。在 Firefox 中,有时它会挂起一段时间。我的代码有什么问题吗?
- 请求是否应该是异步的?