Attivare setInterval all'intero di una funzione

di il
4 risposte

Attivare setInterval all'intero di una funzione

Ciao a tutti
Quando attivo parte il timer, ma poi quando disattivo il timer continua. Questo perché credo che clearInterval non veda la variabile mytimer.
Lo risolvo mettendo setInterval fuori dalla funzione, ma così mi parte subito al caricamento della pagina, mentre io voglio attivarlo e disattivarlo sempre manualmente.
È possibile o mi sto cervellando per niente?

function attivazione_upload(){
	if(document.getElementById('status_invio_foto').textContent == "Attiva Upload Foto"){
		document.getElementById('status_invio_foto').textContent = "Disattiva Upload Foto";
		var mytimer = setInterval(timer_check_upload,5000);
	}else{
		document.getElementById('status_invio_foto').textContent = "Attiva Upload Foto";
		clearInterval(mytimer);
	}
}
function timer_check_upload(){
	alert("ok");
}

4 Risposte

  • Re: Attivare setInterval all'intero di una funzione

    Ok ho risolto
    (leggendo il manuale) ho messo
    window.mytimer;
    fuori dalla funzione
    e ho risolto.
    Ma se avete un modo migliore accetto consigli...
  • Re: Attivare setInterval all'intero di una funzione

    La funzione chiamata attivazione_upload() viene chiamata una volta sola al caricamento della pagina, o è legata all'esecuzione di qualche evento?
  • Re: Attivare setInterval all'intero di una funzione

    All'interno di un menu ho questo
    <li><button id="status_invio_foto" onClick="attivazione_upload();">Attiva Upload Foto</button></li>
    cliccandoci attiva la funzione attivazione_upload()
    modifica Attiva Upload Foto in Disattiva Upload Foto
    e fa partire il timer.
    una banalità
  • Re: Attivare setInterval all'intero di una funzione

    Il tutto sta all'interno di questo...
    (che devo ampliare...)
    Mi sto infilando in una cosa un po' più grande di me, async, await ecc... le sto leggendo adesso...
    perché controllo_upload() deve inviare una serie di XMLHttpRequest ad una pagina php, la quale risponde con un array di numeri...
    questo array poi deve passare a upload_foto() che avrà un for... per ogni circlo deve inviare un XMLHttpRequest ad una pagina php
    e il tutto mi piacerebbe fosse asincrono... perché man mano che vengono compilati dei campi di un form,javascript deve continuamente aggiornare gli id nella pagina del form grazie ai risultati che ottiene da quella pagina php
    window.timer_upload;
    function attivazione_upload(){
    	if(document.getElementById('status_invio_foto').textContent == "Attiva Upload Foto"){
    		document.getElementById('status_invio_foto').textContent = "Disattiva Upload Foto";
    		timer_upload = setInterval(timer_check_upload,2000);
    	}else{
    		document.getElementById('status_invio_foto').textContent = "Attiva Upload Foto";
    		clearInterval(timer_upload);
    	}
    }
    function timer_check_upload(){
    	controllo_upload(upload_foto);
    }
    
    function controllo_upload(Michael_Back){
    	Michael_Back();
    }
    
    function upload_foto(){
    	alert("ok");
    }
    
Devi accedere o registrarti per scrivere nel forum
4 risposte