Webboard

Pełna wersja: Prawidłowe odliczanie licznika JS
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Posiadam pewien licznik który odlicza czas do danego wydarzenia.
Chodzi o to, że ustawiam sobie czas w sekundach, i gdy wejdziemy na stronę, ten czas sobie leci, lecz gdy odświeżymy ją, czas ten się resetuje, i odlicza od domyślnych wartości.

Jak zrobić, by czas ten wyświetlał się poprawnie, czyli. odświeżając stronę czas dalej kontynuuje odliczanie, a nie cofa się do domyślnych wartości.

Tutaj demo:
http://digitalnexus.tk/test/

Proszę o pomoc,
Pozdrawiam.
JS się nie zajmowałem nigdy, ogółem mam już przygotowane skrypty, tylko chodzi mi żeby ten licznik nie resetował czasu, ogółem odłączył się od interakcji z użytkownikiem, i pracował sobie w tle...
Do tego przypadkiem coś więcej nie będzie potrzebne?
Proponuję zwrócić się do autora skryptu.
Po prostu źle używasz licznika. Twój kod:
Kod:
<script type="text/javascript">
    $('.countdown').final_countdown({
            'start': 1362139200,
            'end': 1388461320,
            'now': 1387461319
    });
</script>

Skoro masz stały czas 'now', to będzie startować zawsze od niego. Musisz użyć funkcji JS ustawiającej aktualny czas:
Kod:
Math.round(+new Date()/1000)
zamiast liczby.

Poza tym, data końcówa 'end' już dawno minęła: 12 / 31 / 13 @ 3:42:00am UTC http://www.unixtimestamp.com/index.php
jednym z podejść jest zapisanie bieżącej wartości licznika w pamięci podręcznej przeglądarki, takiej jak localStorage, a następnie odczytanie tej wartości przy kolejnym załadowaniu strony i kontynuowanie odliczania od tego punktu. Istnieje wiele przykładów i bibliotek dostępnych online, które mogą pomóc w implementacji takiego rozwiązania
Problem, który opisujesz, jest typowy dla liczników JavaScript opartych na stronie klienta. Ponieważ odświeżenie strony resetuje stan JavaScript, licznik również się resetuje.

Istnieje kilka sposobów rozwiązania tego problemu:

1. Użyj localStorage:

Zapisz czas rozpoczęcia odliczania w localStorage, gdy użytkownik wejdzie na stronę.
Odświeżając stronę, odczytaj czas rozpoczęcia z localStorage i oblicz pozostały czas.
2. Użyj cookie:

Zapisz czas rozpoczęcia odliczania w cookie, gdy użytkownik wejdzie na stronę.
Odświeżając stronę, odczytaj czas rozpoczęcia z cookie i oblicz pozostały czas.
3. Użyj serwera:

Zapisz czas rozpoczęcia odliczania na serwerze, gdy użytkownik wejdzie na stronę.
Odświeżając stronę, pobierz pozostały czas z serwera.
Przykład użycia ChatGPT:

Możesz użyć ChatGPT, aby wygenerować kod JavaScript dla dowolnego z tych rozwiązań. Na przykład możesz poprosić ChatGPT o:

Napisanie funkcji JavaScript, która zapisuje czas rozpoczęcia odliczania w localStorage.
Napisanie funkcji JavaScript, która odczytuje czas rozpoczęcia z localStorage i oblicza pozostały czas.
Napisanie skryptu PHP, który zapisuje czas rozpoczęcia odliczania w bazie danych MySQL.
Napisanie skryptu PHP, który odczytuje czas rozpoczęcia z bazy danych MySQL i oblicza pozostały czas.
Dodatkowe wskazówki:

Upewnij się, że używasz unikalnego identyfikatora dla każdego licznika, aby czas odliczania był prawidłowy dla różnych użytkowników.
Możesz użyć biblioteki JavaScript, takiej jak Moment.js, do łatwego manipulowania datami i godzinami.
Mam nadzieję, że to pomoże!