Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832

    Gestire uno script a tempo

    salve gente.
    mi è venuto un dubbio x il quale vi chiedo consiglio.
    io devo avviare uno script che deve fare delle cose ogni tot secondi.
    tale script deve essere avviato al click su un link e poi proseguire per i fatti suoi, richiamando altre cose e vivendo di vita propria.

    io ho fatto una cosa sbagliata perchè ho creato un timer che si avvia al click del link, ma mi sono reso conto che ovviamente ogni volta che viene ripremuto il suddetto link lo script si resetta!
    come devo fare invece?

    codice:
    function timer(){
     setTimeout('itera', millisecondi)
    }
    
    function itera(){
       ...
       ...
       setTimeout('timer',msec);
    }
    ...
    ...
    Clicca
    grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    si deve poter avviare solo una volta?
    codice:
    var timer=false;
    function startTimer(){
     if(!timer) timer=setTimeout('itera', millisecondi);
    }
    
    function itera(){
       ...
       ...
       timer=setTimeout('timer',msec);
    }
    ...
    ...
    Clicca

  3. #3
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    ah quindi basta mettere un var timer=false; perchè la funzione parta e non venga mai più influenzata dai click successivi?

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    quel timer e' una variabile globale inizialmente settata a false
    quando richiami startTimer timer diventa il riferimento a quella temporizzazione,
    quindi sicuramente non false
    e successivi richiami alla funzione non riavvieranno il timer

    ciao

  5. #5
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    ok grazie.
    in realtà ho dovuto riadattarlo un pochino, ma sembra funzionare.

    il fatto è che la funzione StartTimer() nel mio caso stabilisce i millisecondi per reiterare.
    ietra(x,y,z) richiama la funzione importante con tutta una serie di operazioni
    ed in essa ho messo

    timer = setTimeout('funz_da_iterare(sec,abs,idu)', sec);

    alla fine di
    funz_da_iterare

    c'è:
    timer = setTimeout('itera(sec,str,idz)',sec);

    così dovrebbe essere comunque corretto no?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.