Salve ho un problema complesso che quindi spiego per passi. Ho costruito un pagina html e con jqPlot ho inserito un grafico i cui dati vengono presi da un vettore di vettori. I dati nel vettore e il grafico vengono aggiornati ogni tot grazie ad una chiamata Ajax che prende i dati del sensore di temperatura con il seguente script php:
<?php
$url = ("/sys/bus/w1/devices/w1_bus_master1/28-0415913a34ff/w1_slave");
$file = file($url);
$data = explode('=',$file[1]);
echo $data[1];
?>
Il codice della chiamata Ajax invece � questo:
function doUpdate(){
$.ajax({
type: "GET",
url: "scripts/getTemp.php",
success: function(temp){
var y = temp/1000;
var x = parseInt(((new Date()).getTime()-xi)/1000);
data.push([x,y]);
plot1.destroy();
plot1 = $.jqplot ('tempGraph', [data]);
++i;
timer = setTimeout(function(){doUpdate()},t);}
});
}
Inoltre la funzione doUpdate() viene richiamata quando premo un pulsante col seguente codice
$('button#start').click(function(){
dataPCS = new Array; //cancella i vecchi dati per registrarne di nuovi
doUpdate();
});
e stoppato con quest'altro pulsante
$('button#stop').click(function stop(){
clearTimeout(timer);
});
Ora i problemi sono i seguenti: ogni tanto, dipende a che punto � la chiamata Ajax nonostante io esegua il clearTimeout la funzione non si stoppa. Poi il grafico si aggiorna ogni 3 o 4 secondi invece io ho impostato il setTimeout per 2 secondi. La chiamata AJAX dev'essere per fora cos� lenta? come poso risolvere? se non sono stato chiaro in alcune parti fatemi sapere, grazie!