webForumDet fria alternativet

"döda" timer

3 svar · 400 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Hej,

Använder följande funktion från Jojoxx.net:

<script type="text/javascript">
/* Detta script finns att hämta på [url]http://www.jojoxx.net[/url] och
   får användas fritt så länge som dessa rader står kvar. */

var hours = 0;
var minutes = 3;
var seconds = 0;
var action = 'location.href="http://www.jojoxx.net";';
//  Ändra inte på följande rader.
seconds += minutes*60 + hours*3600 
function CountDown(){
	seconds--;
	if (seconds == 0) eval(action);
	dhour = parseInt(seconds/3600);
	dsec = seconds - dhour*3600;
	dmin = parseInt(dsec/60);
	dsec = dsec - dmin*60
	if(dsec<10) dsec = "0" + dsec;
	if(dmin<10) dmin = "0" + dmin;
	document.MyTimer.text.value = dhour + ":" + dmin + ":" + dsec;
	if(seconds>0){
		setTimeout("CountDown()",1000);
	}
}
CountDown();
</script>

Använder det till en form av logout funktion, det som händer är att när det är 15 minuter kvar, öppnas ett inloggningsformulär som uppmanar användaren att logga in igen.

Det funkar kanonbra i alla läsare utom IE (såklart).
När en användare åter loggar in, kallar jag på "CountDown();" igen, för att timern ska återgå till ursprungsvärdet.

Men det som händer i exlorer är att den fortsätter att räkna ner från 15 minuter och den räknar mycket snabbare än varje sekund.
Jag misstänker att jag måste "döda" den gamla instansen av timern och sätta om den från ursprungstiden igen, men hur gör jag?

MickeA.comMedlem sedan feb. 20034 441 inlägg
#2

Det var inga problem det här, körde clearTimeout() i samband med återinloggning och kallade på funktionen igen, nu funkar det överallt.

TroxyMedlem sedan mars 20041 505 inlägg
#3

Tillåt mig att tipsa om meta-refresh i stället. :)

<meta http-equiv="Refresh" content="900; url=http://www.jojoxx.net/">
MickeA.comMedlem sedan feb. 20034 441 inlägg
#4

Troxy skrev:

Tillåt mig att tipsa om meta-refresh i stället. :)

Jo, vet.. men själva grejen med den här funktionen är att man aldrig ska förlora sitt arbete, även fast session löper ut.

Inloggningen visas, man loggar in när man åter kommer till datorn, man loggas in med ajax och man kan sedan spara det man håller på med utan att sidan laddas om.

:)

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)