Timer continuo, anche uscendo dalla pagina

Ray Bomba Mc

Nuovo Utente
17 Mar 2014
10
0
0
Ciao, sono nuovo, e so qualcosina di javascript, il problema con cui sono bloccato da un anno e passa è fare un timer, che anche uscendo dalla pagina in cui esso è, prosegue il suo conteggio, stile browser game tipo Ikariam. Mi spiego??
 
Esatto uscendo dalla pagina il timer si ferma e non si dovrebbe fermare, come quando in alcuni giochi metti in costruzione un edificio ed esci, ed il timer di costruzione non si ferma continua
 
QUello che volevo dire è che se adesso esci dalla pagina e ci rientri tra due ore le due ore passano comunque
memorizzi la data di uscita e quando rientri calcoli quanto tempo è passato e aggiorni il timer
 
Dovresti dare qualche informazione in più :
- posta il timer
- è legato ad un utente
- usi php o asp
- hai un database
- a cosa serve il timer
- ......
 
Dovresti dare qualche informazione in più :
- posta il timer
- è legato ad un utente
- usi php o asp
- hai un database
- a cosa serve il timer
- ......

- Il timer lo sto ancora facendo
- Esatto, ogni utente ne ha uno
- Php
- No, salvo tutti i dati in dei fogli.txt
- Costruzione/ Espandimento edifici
 
Potresti provare cosi
PHP:
<?php

$utente = "pippo";
$file = $utente . ".timer.txt";

if (!file_exists($file)) {
    $fr = fopen($file, 'w');
    fwrite($fr, time());
    fclose($fr);
}

$fr = fopen($file, 'r');
while (!feof($fr)) {
    $timer = fgets($fr);
}
fclose($fr);

echo "Il timer &egrave; iniziato da " . (time() - $timer) . " secondi";
memorizzi l'inizio del timer in un file di testo, ogni volta che riapri la pagina calcoli il tempo che è passato
 
Potresti provare cosi
PHP:
<?php

$utente = "pippo";
$file = $utente . ".timer.txt";

if (!file_exists($file)) {
    $fr = fopen($file, 'w');
    fwrite($fr, time());
    fclose($fr);
}

$fr = fopen($file, 'r');
while (!feof($fr)) {
    $timer = fgets($fr);
}
fclose($fr);

echo "Il timer &egrave; iniziato da " . (time() - $timer) . " secondi";
memorizzi l'inizio del timer in un file di testo, ogni volta che riapri la pagina calcoli il tempo che è passato

Okay, bell'idea, non mi è chiara una semplice cosa però...
Innanzitutto il timer va indietro non in avanti, perciò dovrà mostrare il tempo che manca non quello già passato, ma è ancora una cosa superficiale questa, si fa in due secondi. Ciò che non capisco è come tenerlo in tempo reale, nel momento in cui sono nella pagina da 1 minuto e mezzo, il timer dovrà mostrarmi il tempo rimanente veramente, non quello rimanente + 1 minuto e mezzo.. Capisci?
 
Quando sei nella pagina usi javascript per incrementarlo
PHP:
<script type="text/javascript">
    window.onload = function() {
        var timer = parseInt(document.getElementById("timer").innerHTML);
        setInterval(function() {
            timer++;
            document.getElementById("timer").innerHTML = timer;
        }, 1000);
    }
</script>
<?php
$utente = "pippo";
$file = $utente . ".timer.txt";
if (!file_exists($file)) {
    $fr = fopen($file, 'w');
    fwrite($fr, time());
    fclose($fr);
}

$fr = fopen($file, 'r');
while (!feof($fr)) {
    $timer = fgets($fr);
}
fclose($fr);

echo "Il timer &egrave; iniziato da <span id='timer'>" . (time() - $timer) . "</span> secondi";
Per farlo andare indietro,come dici tu, basta pensarci qualche minuto
 
E la linea 8 è:

non si può usare file_get_contents?
Si che puoi
PHP:
$utente = "pippo";
$file = $utente . ".timer.txt";
if (!file_exists($file))
    file_put_contents($file,time());

$timer = file_get_contents($file);

echo "Il timer &egrave; iniziato da <span id='timer'>" . (time() - $timer) . "</span> secondi";
 
Nello script di Nefyt non c'è il while non capisco cosa hai scritto
 
L'ho fatto, e l'ho fatto andare all'indietro e funziona, grazie :fonzie:
Solo un ultimo problema.. :confused:
Ehm, penso per il fuso orario, anche se non ne sono sicuro, però il timer mostra 1 ora in più..
Soluzioni?
 

Discussioni simili