Visualizzazione dei risultati da 1 a 9 su 9

Discussione: counter inattività

  1. #1

    counter inattività

    ciao a tutti.
    nel mio sito, l'utente loggato ha un tot di tempo prima di essere disconnesso per inattività (diciamo 30 minuti)
    vorrei inserire uno script che faccia partire un coutdown quando si è inattivi. è possibile?

    grazie 1000

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao gaia2003,

    cosa intendi per inattività? Che l'utente non naviga più?(nessuna richiesta al server)
    e alla fine del countdown? che deve succedere?
    Praticamente un countdown di 30minuti che parte all'onload della pagina?

  3. #3
    si esatto per inattivià intendo che non c'è nessuna richiesta al server per 30 minuti.
    alla fine, sarebbe fantastico se un minuto prima avvisasse con un messaggio dell'imminente disconnessione.

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    una roba così
    codice:
    <script language="javascript">
    function ScalaTempo(Secondi){
    	if(Secondi==0){
    		alert('FINITO!')
    	}
    	else{
    		var dd = document.getElementById('divContoRovescia')
    		var time = new Date()
    		time.setTime((Secondi*1000)-(60*60*1000));
    		var tiempo = time.getHours()+'.'+time.getMinutes()+'.'+time.getSeconds();
    		dd.innerHTML = tiempo
    		timer = setTimeout('ScalaTempo('+(Secondi-1)+')',1000);
    		if(Secondi==60){
    			document.getElementById('divContoRovesciaAvviso').innerHTML='Manca meno di un minuto!!'
    		}
    	}
    }
    </script>
    <BODY onload="ScalaTempo(80)">
    <div id="divContoRovescia"></div>
    
    <div id="divContoRovesciaAvviso"></div>
    ho messo 80 secondi per testare... per mezzora 1800 (ma va? )

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Semplicino...
    codice:
    <script>
    var m=30;
    var s=0;
    function dec() {
      document.ff.tt.value="rimangono "+m+" minuti e "+s+" secondi"
      s--
      if(s<0) {
        s=59;
        m--
      }
      setTimeout('dec()',1000)
    } 
    </script>
    <body onload="dec()">
    <form name=ff><input type=text name=tt size=30></form>
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    grazie!!! funziona perfettamente!
    un'ultima cosa...
    il mio sito è composto da 3 form.
    quello centrale è quello che cambia con le varie pagine.
    se inserisco lo script nel form superiore (indice) funziona lo stesso controllando che i cambiamenti avvengano nel form principale?

  7. #7
    grazie!!! funziona perfettamente!
    un'ultima cosa...
    il mio sito è composto da 3 form.
    quello centrale è quello che cambia con le varie pagine.
    se inserisco lo script nel form superiore (indice) funziona lo stesso controllando che i cambiamenti avvengano nel form principale?

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    da quello che scrivi stai parlando di frame e non di form

    cambia tutto coi frame...
    devi mettere nel frame superiore lo script con un'altra funzione che fa ripartire il countdown
    codice:
    <script language="javascript">
    var secondi = 80
    var timer
    function ReStart(){
    	clearTimeout(timer)
    	document.getElementById('divContoRovesciaAvviso').innerHTML=''
    	ScalaTempo(secondi)
    }
    function ScalaTempo(Secondi){
    	if(Secondi==0){
    		alert('FINITO!')
    	}
    	else{
    		var dd = document.getElementById('divContoRovescia')
    		var time = new Date()
    		time.setTime((Secondi*1000)-(60*60*1000));
    		var tiempo = time.getHours()+'.'+time.getMinutes()+'.'+time.getSeconds();
    		dd.innerHTML = tiempo
    		timer = setTimeout('ScalaTempo('+(Secondi-1)+')',1000);
    		if(Secondi==60){
    			document.getElementById('divContoRovesciaAvviso').innerHTML='Manca meno di un minuto!!'
    		}
    	}
    }
    </script>
    <BODY onload="ScalaTempo(secondi)">
    <div id="divContoRovescia"></div>
    
    <div id="divContoRovesciaAvviso"></div>
    e in tutte le altre pagine mettere nell'onload il richiamo a questo restart
    codice:
    <BODY onload="top.NomeFrameSuperiore.ReStart()">

  9. #9
    si è vero sto parlando di frame....piccola svista !
    pardon!

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