Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    setTimeout e setInterval

    Ma perchè le temporizzazioni a volte funzionano e a volte no? Ad esempio come mai se scrivo

    function numeri()
    {
    var numero=0;
    alert(numero);
    numero++;
    setTimeout("numeri()",5000);
    }

    ogni 5 secondi mi esce l'alert, invece se la stessa funzione la uso così

    function numeri()
    {
    var numero=0;
    document.write(numero);
    numero++;
    setTimeout("numeri()",5000);
    }

    non mi aggiorna la pagina e mi da errore?

  2. #2
    document.write sovrascrive il documento, probabilmente dopo il primo non ritrova più lo stesso script presente nel document fino all'attimo prima e non sa che caspita è la funzione numeri ... ma in generale sembra quasi tu stia aspettando che quel numero++ faccia qualcosa, mentre essendo una variabile locale non farà molto se non al massimo stampare sempre 0 (o mostrarlo in alert)

    codice:
    function numeri(){
    	if(!numeri.numero)
    		numeri.numero = 0;
    	alert(numeri.numero++);
    	setTimeout(numeri, 5000);
    }
    
    // oppure
    
    var	numeri = setInterval(function(){
    	if(!numeri.numero)
    		numeri.numero = 0;
    	alert(numeri.numero++);
    }, 5000);
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Quello che dici è poco intuitivo per un principiante ma vero. Ecco perchè mi dice che non trova la funzione.
    Però tra le due soluzioni che hai scritto solo la prima funziona e solo con l'alert; cambiando alert in document.write aggiorna la pagina da 0 ad 1 poi si ferma (o continua a sovrascrivere 1).

    Comunque queste sono solo prove che ho fatto per vedere se effettivamente posso utilizzarli per agire sull'Array styleSheets e far aumentare la larghezza width di qualcosa, tipo una foto o un div, non di colpo ma lentamente (es un pixel ogni quarto di secondo fino a portare il div da 80 a 500 px di larghezza) in modo da vedere l'effetto dinamico.

  4. #4
    Originariamente inviato da giancarlo75
    cambiando alert in document.write aggiorna la pagina da 0 ad 1 poi si ferma (o continua a sovrascrivere 1).
    ti ho gia' detto perche' ... document.write sovrascrive la pagina, JS esterni o interni compresi
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.