16 messaggi dal 29 maggio 2001
Salve a tutti.

Ho un problema che sinceramente non so se sia risolvibile. Devo implementare nelle mie pagine un timer. Questo timer dovrebbe calcolare la permanenza di un utente su un pagina.

Adesso di timer in js ce ne sono tantissimi e funzionanno anche bene.
Il problema è che quando si fa un refresh della pagina il timer ricomincia da 0.
Siccome all'apertura della pagina io prendo l'ora in cui è stata aperta
vorrei che il timer iniziasse a scorrere da quel momento.

Ad esempio se ora sono le 13.00 e la pagina è stata aperta alle 12.30
ad un refresh della pagina il timer non dovrebbe partire da 00:00:00 ma da 00:30:00 e continuare...

Il problema sta nel fatto che non ho la minima idea di come inizializzare la variabile in js ( startDate ) passandogli la var vbscript ( ora_apertura_pagina ).
Sempre che questa sia la soluzione.


Di seguito allego lo script in javascript sperando che qualcuno possa darmi una mano.
Grazie mille


<SCRIPT LANGUAGE="JavaScript">
<!-- Beginning of JavaScript --------

vartimerID = null
vartimerRunning = false
varstartDate
varstartSecs

function stopclock()
{
if(timerRunning)
clearTimeout(timerID)
timerRunning = false
}

function startclock()
{
startDate = new Date()

startSecs = (startDate.getHours()*60*60) + (startDate.getMinutes()*60)
+ startDate.getSeconds()

stopclock()
showtime()
}


/*-------------------------------------------------
showtime()
Puts the amount of time that has passed since
loading the page into the field named timerField in
the form named timeForm
-------------------------------------------------*/

function showtime()
{
// this doesn't work correctly at midnight...

var now = new Date()
var nowSecs = (now.getHours()*60*60) + (now.getMinutes()*60) + now.getSeconds()
var elapsedSecs = nowSecs - startSecs;

var hours = Math.floor( elapsedSecs / 3600 )
elapsedSecs = elapsedSecs - (hours*3600)

var minutes = Math.floor( elapsedSecs / 60 )
elapsedSecs = elapsedSecs - (minutes*60)

var seconds = elapsedSecs

var timeValue = "" + hours
timeValue += ((minutes < 10) ? ":0" : ":") + minutes
timeValue += ((seconds < 10) ? ":0" : ":") + seconds

// Update display
document.timerForm.timerField.value = timeValue
timerID = setTimeout("showtime()",1000)
timerRunning = true
}



// -- End of JavaScript code -------------- -->
</SCRIPT>

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.