Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44

    Chiamate AJAX e setTimeout()

    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!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Hai i concetti confusi le chiamate Ajax le interrompi con AjaxStop clearTimeout serve per bloccare il timer (setTimeout)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44
    Ma ajaxstop non ferma il timer quindi verrebbe effettuata un'altra chiamata. Come devo usare ajaxstop? Non conoscevo questa funzione

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.