Newsgroup: it.comp.lang.javascript
Titolo: "Misuratore di quanto tempo si passa nel sito"

Ho un cliente supercapriccioso che usa la nostra piattaforma di 
E-Learning. La piattaforma aggiorna il tempo trascorso nelle varie 
pagine ad ogni click, questo al cliente non basta, vorrebbe vedere il 
tempo che possa anche quando è in una pagina specifica :-/
Immagino una funzione che faccia scorrere i secondi partendo da sero 
quando inizia la sessione e mantenendosi fino a che non chiudo la 
finestra del browser ... come sarebbe possibile ciò?
Scusate per niubbaggine delle domande ...
CLa!
-- 
www.spaghettibrain.com
 - PHPNUke Italian Mirror
www.spaghettilearning.com
 - Piattaforma open Source per l'E-Learning
!!>> Il mondo non è ancora pronto per il Funky <<!!

 Scusate per niubbaggine delle domande ...
Non e' tanto nubbia, perche' - ad esempio - l'evento "chiusura del browser"
non lo puoi intercettare.. hai un evento che e' onunload, ma si applica al
documento. Quindi si attiva quando il documento viene ricaricato (refresh),
abbandonato(clicco su un altra pagina, scrivo l'indirizzo di un altro
sito), o la finestra del browser chiusa.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
Le donne si dividono in 4 categorie: le suore (non la danno a nessuno);
le puttane (la danno a tutti); le stronze (la danno a tutti tranne che 
a te); le rompiballe (la danno a te e solo a te).

 totale trascorso?
Scusa, era "Passa" e non "Possa". Si , il server, ad ogni click, mostra 
nella pagina il tempo trascorso nella sessione e il tempo trasorso in 
totale (somma delle sessioni)
Se guardi questo sreenshot:
http://www.spaghettilearning.com/images/screenshot/screen4.gif
Vedi che a destra hai un orologio (gif) che cambia allo scattare dei 5 
minuti (solo se cambio pagina ovviamente) e due voci:
-> Time in the course today
-> Total time in this cource (Somma delle sessioni)
Quello che mi interessa fare è inserire al posto di "Time in the course 
today" una sorta di cronometro che, partendo da zero, andasse avanti 
fino alla fine della sessione/chiusura del browser. E' un puro fatto 
estetico perché poi la misurazione la faccio fare al record del DB, 
dunque quello di cui avrei bisogno è qualcosa tipo questo:
http://www.javascript-page.com/timer.html
Ma che:
Mantenga il tempo misurato anche se cambio pagina
Chiuda il timer quando chiudo il browser o comunque quando distruggo la 
sessione ...
Scusate se sto abusando troppo del Vostro tempo ... :-(
Cla!


 sessione ...
Non so quanto di JS tu ne sappia, quindi scusami se diro' qualche
banalita'.
Il punto fondamentale e' che qualsiasi cosa tu scriva in Javascript, ha
vita solo fintanto che la pagina in cui risiede lo script e' caricata.
Quando cambi pagina, o ricarichi anche la stessa, stai distruggendo tutti
gli script presenti in memoria. Variabili comprese.
Quindi, il problema maggiore da affrontare, e' come mantenere la
persistenza di una variabile, al cambio (o refresh) di una pagina.
Non conosco bene la struttura su cui devi lavorare, ma a cazzotto direi che
la strada piu' semplice e banale e'.. evitare di passare questo valore.
Mi spiego meglio. Tu gia' memorizzi server side il tempo trascorso, tra la
visualizzazione di una pagina e l'altra. Quindi, hai una variabile (di
sessione, o un campo temporaneo di un database) dove memorizzi questo
valore.
Come hai dettu tu, e' una questione prettamente estetica. Hai il timer
aggiornato al cambio di pagina, ma durante questo lasso di tempo, il timer
rimane "statico". Lo scopo e' aggiungere "movimento" tra questi due
"passaggi chiave".
Quindi, secondo me, la strada piu' immediata e' utilizzare un banale
contatore JS, a cui puoi impostare un valore iniziale. In questo modo il
contatore altro non fara' che contare come se partisse da una base zero, ma
lato PHP imposti il valore iniziare all'ultimo valore di tempo trascorso
percepito.
Non so se sono stato sufficientemente chiaro..
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
Tutti quelli che credono nella psicocinesi, per favore alzino la mia mano.

 percepito.
Si, mentre aspettavo la tua risposta mi č venuta in mente un'idea che 
corrisponde al tuo suggerimento:
-> Prendo il valore che mi spara la schermata
-> Lo inserisco in un timer javascript come valore di inizio
-> Faccio partire il timer da quel momento e sistemo tutto con i CSS in 
modo che non appaia in un fieldtext, o almeno lo maschero
Grazie mille
Claudio
-- 
www.spaghettibrain.com
 - PHPNUke Italian Mirror
www.spaghettilearning.com
 - Piattaforma open Source per l'E-Learning
!!>> Il mondo non č ancora pronto per il Funky <<!!

 modo che non appaia in un fieldtext, o almeno lo maschero
Non so qual'e' il livello di accessibilita' che deve avere il software in
questione (ovvero su che browser deve girare), ma in caso puoi scrivere
dinamicamente su un layer il valore, senza far affatto uso di campi di
testo da "mascherare" con i css. 
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
I feel like I'm diagonally parked in a parallel universe.