if I use the shift function to remove the first element in the array when the number of elements than specified (> 10), when they meet the requirements after each drawing I lost one element until only one element.
My code:
window.onload = function () {
d = new Date(); // Tạo biến thời gian d
time2 = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds(); // Lấy giờ phút giây hiện tại
tmp = 234;
var dataPoints = [{"label":time2, "y" : tmp}];
var chart = new CanvasJS.Chart("chartContainer", {
title :{
text: "AUTO UPDATE VALUE"
},
axisX: {
title: "DOANH SO"
},
axisY: {
title: "đồng"
},
data : [{
type : "spline",
dataPoints : dataPoints
},
]
});
chart.render();
// Tạo hàm update biểu đồ với thời gian timer
var timer = 1000, updateCount = 0;
var dataLength = 5;
var updateChart = function () {
// Xử dụng Ajax gửi request lên server chạy file Data_update_tmp.php
// và nhận thông tin từ biến xmlHttp.responseText của server
var xmlHttp;
try{
//Firefox, Opera 8.0+ , Safari
xmlHttp = new XMLHttpRequest();
}catch (e){
// IE
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4){
tmp2 = xmlHttp.responseText;
}
}
xmlHttp.open("GET","Data_Live_DS.php",true);
xmlHttp.send(null);
// Chuyển sang kiểu số và truyền vào biến tong để add vào datapoint
tg = Number(tmp2);
updateCount++;
d = new Date();
time2 = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
chart.options.data[0].dataPoints.push({"label": time2, "y": tg});
if( dataPoints.length > 10){
dataPoints.shift();
}
chart.render();
};
// update chart every second
setInterval(function(){updateChart()}, timer);
}
</script>
How do i fix my error? Thanks all.
Sorry my english is not good.