Newsgroup: it.comp.lang.javascript
Titolo: Problema con contdawn

Ciao a tutti ragazzi.
Tempo fa ho realizzato uno script per un contdown che mi permettesse di
registrare il tempo che impiega un utente a cliccare su un link di una
pagina. Lo script fa parte di un gioco ed è il seguente.
var Stop = 250;
ferma = false;
var val;
var linka;
function Parti(){
         timer=setInterval('Stop--;CountDown();',100);
}
function CountDown(){
         if (Stop==0 || ferma==true){
            switch (val){
            case 0:
                 NomeLink = "0";
                 break;
            case 1:
                 NomeLink = "1";
                 break;
            case 2:
                 NomeLink = "2";
                 break;
            case 3:
                 NomeLink = "3";
                 break;
            case 4:
                 NomeLink = "4";
                 break;
            case 5:
                 NomeLink = "5";
                 break;
            default:
                    NomeLink = "0";
                    break;
            }
            document.frmhddn.tempo.value = Stop;
            document.frmhddn.link.value = NomeLink;
            document.forms['frmhddn'].submit();
            clearInterval(timer);
      }
      document.getElementById("conto").firstChild.nodeValue = Stop;
}
In pratica lo script non fa altro che impostare un conto alla rovescia da
250 a 0 e, quando si clicca sul link, invia alla pagina successiva il valore
del tempo impiegato per cliccare sul link e il link che è stato cliccato
(identificato con un numero da 1 a 5). Ho notato, però, che se si preme il
tasto stamp ripetutamente l'esecuzione dello script viene notevolmente
rallentata. Come posso fare, allora, per fare in modo che il tempo sia
effettivamente quello trascorso, in pratica vorrei poter leggere,
effettivamente tramite l'orologio del computer, quanto tempo passa dal
momento che viene presentata la pagina all'utente al momento in cui lui
clicca su un link, ed impostare, su questo tempo, il countdown.
Spero di essere stato chiaro. Ciao a tutti.

Forse countdown nell'oggetto č meglio

 clicca su un link
Premesso che qualsiasi cosa tu faccia, se l'utente e' "smart" puo'
benissimo fregarti fintanto che fai questo genere di operazioni lato
client, e che quindi sarebbe bene tu le facessi tramite un linguaggio
server side(php,asp,jsp, cgi in generis); puoi aggirare il problema dello
"stamp" semplicemente inviando la differenza del tempo trascorso dal
caricamento della pagina, a quella di quando l'utente clicca su un link a
prescindere dal valore "visualizzato" dal countdown. Perche' e' solo quello
che viene rallentato.
Un esempio di cosa potresti fare:
<script type="text/javascript">
var timestamp=0;
function addElapsedTime(linkElement){
	linkElement.search+=(linkElement.search.charAt(0)=="?"?"&":"?")+"time="+(
(new Date()).getTime()-timestamp )
}
window.onload=function(){
	timestamp=(new Date()).getTime();
}
</script>
<a href="goofy.htm" onclick="addElapsedTime(this)">goofy</a>
<a href="donald.htm?a=4&b=33" onclick="addElapsedTime(this)">donald</a>
-- 
ZER0://coder.gfxer.web-designer/
~ Come devo regolare la stampante laser per stordire?
(How do I set a laser printer to stun?)
on air ~ "Greenday - When I Come Around"

 ha scritto nel messaggio
news:16iaro7sudyuy$.dlg@ID-171124.news.individual.net...


 Cosa vuol dire utente "smart"?
Vuol dire che se tu facessi un gioco del genere, e il tempo trascorso e'
una componente fondamentale per vincere o attribuire un certo tipo di
punteggi, un utente che non sia un utonto e conosce un minimo di javascript
puo' falsare il tuo "countdown", impostando un valore arbitrario.
-- 
ZER0
~ The Tangent Universe collapsed 5930 days, 3 hours, 14 minutes and 43 seconds ago.