使用 Ajax 正确方式刷新 ChartJS (v2.6.0) 中的条形字符



我正在刷新我的条形图,更改下拉列表。我只想知道我是否以正确的方式做这件事。每次我用新画布替换现有画布时,在我的代码中。 有没有更好的方法来实现同样的事情?

我的JS代码:

var chart_= function () {
$('#canvas_id').replaceWith('<canvas id="canvas_id" style="height:280px"></canvas>');
$.ajax({
type: 'POST', //post method
url: 'url', //ajaxformexample url
dataType: "json",
success: function (result, textStatus, jqXHR)
{
// GENERATE CHART DATA
var labels = result.obj.map(function (e) {
return e.label;
});
var data = result.obj.map(function (e) {
return e.data;
});
new Chart($("#canvas_id"), {
type: 'bar',
options: options_object,
data: {
labels: labels,
datasets: [
{
label: "",
backgroundColor: '#00c0ef',
data: data
}
]
}
});
}
});
};

肯定有一些更好的方法,我一直在使用 Chart.js 进行一些实时更新图表,实现您想要的好方法是声明一个图表,其中包含最初预定义的一些设置。

var chart = new Chart( canvas, {
type: "bar",
data: {}
options: {}
}

这样,每当您需要更新图表时,您只需访问现有的图表即可。并将数据更新为从 ajax 调用中获得的数据,并使用 chart.update(( 方法,以便您可以继续使用预先存在的画布

$.ajax({
type: 'POST', //post method
url: 'url', //ajaxformexample url
dataType: "json",
success: function (result, textStatus, jqXHR)
{
chart.data = result;
chart.update();
}
});

希望这有帮助!

最新更新