Estoy usando XMLHTTPRequest para recibir datos de un archivo PHP. El archivo PHP hará eco en un número, digamos 6, y XMLHTTPRequest lo tomará. Este es un intento de hacer que el gráfico viva.
El problema que tengo se relaciona con ChartJS y estas solicitudes.
var Data; function loadXMLDOC() { var request = new XMLHttpRequest(); // create http request request.onreadystatechange = function() { if (request.readyState == 4 && request.status == 200) { Data = this.responseText; myChart.data.labels.push(" "); myChart.data.datasets[0].data.push(Data); // re-render the chart myChart.update(); } } request.open('GET', "data.php", true); request.send(); // send the request } setInterval(function(){ loadXMLDOC(); }, 1000) window.onload = loadXMLDoc;Como estoy tomando estos números de una base de datos, solo necesito el número una vez. Sin embargo, repetirá el número varias veces, no una vez. Números que se repiten en ChartJS Me preguntaba cómo obtendría el número solo una vez y no se repetiría varias veces hasta que llegue el siguiente número.
Como sugirió Manuel, puede verificar si el último número agregado es el mismo número que desea agregar. Si este es el caso, no lo agregue. El efecto secundario de esto es que, si el siguiente número es en realidad el mismo número que el último, tampoco se agregará. Para lograr esto, puede cambiar su función a esto:
if (request.readyState == 4 && request.status == 200) { Data = this.responseText; const chartData = myChart.data.datasets[0].data; if (chartData[chartData.length - 1] === Data) { return; } myChart.data.labels.push(" "); myChart.data.datasets[0].data.push(Data); // re-render the chart myChart.update(); }Otra opción es dejar que PhP no envíe el número si ya se envió.