Odliczanie czasu - czy javascript to dobry pomysł?

0

Hej. Mam małą zagwostkę. Mam programik w napisany w Pythonie/Django, który po wciśnięciu przycisku załącza pętlę i sobie wykonuje obliczenia. Przy kolejnym wciśnięciu przycisku program się zatrzymuje. Chciałem dodać prosty licznik czasu działania od ostatniego uruchomienia. Czyli włączam przycisk START i na stronie leci sobie zegar, który odlicza czas. Stwierdziłem, że nie będę wymyślał koła na nowo i zaimplementowałem sobie gotowca w javascripcie (https://albert-gonzalez.github.io/easytimer.js/). Problem w tym, że po każdym przeładowaniu strony zegar startuje od nowa. Pytanie nie jest o sam kod, bo do tego postaram się dojść samemu, tylko o nakierowanie na właściwą technologię i ewentualne wskazówki jak zapisać zmienną, która będzie przechowywała aktualny czas. Czy czysty javascript sprawdzi się w tym przypadku? Niby prosta rzecz, a wprowadziła mnie w konsternację... Dzięki za wszelkie wskazówki.

1

Czy czysty javascript sprawdzi się w tym przypadku? Niby prosta rzecz, a wprowadziła mnie w konsternację...

A do czego tego potrzebujesz?

Przeglądarkowy JavaScript nie nadaje się jeśli chcesz to potem zwalidować - jeśli licznik ci jest potrzebny, bo np. robisz serwis do ściągania plików i chcesz odliczać komuś czas do następnego ściągania - wtedy ktoś mógłby łatwo oszukać system.

Ale jeśli chodzi ci tylko o animację (a nie o walidację), to pewnie że JavaScript, nie wiem co byś chciał innego używać (chociaż niektórzy pewnie potrafili by zrobić taki zegarek w czystym CSS...)

jak zapisać zmienną, która będzie przechowywała aktualny czas

np. w localStorage https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
zapamiętuje wtedy zmienną w przeglądarce.

0

A do czego tego potrzebujesz?

Wyłącznie do nauki. Po prostu stwierdziłem, że wstawię sobie coś takiego na stronkę, zderzyłem się ze ścianą i próbuję z tego jakoś wybrnąć;)

np. w localStorage https://developer.mozilla.org[...]s/Web/API/Window/localStorage
zapamiętuje wtedy zmienną w przeglądarce.

Spróbuję - dzięki.

0

Niestety chodzi mi o coś innego.

localStarage

zapisuje dane w przeglądarce. Mi chodzi o zapisanie tego po stronie serwera żeby użytkownik, który wejdzie na stronę dajmy na to za tydzień z zupełnie innego miejsca miał również podgląd ile czasu działa uruchomiony skrypt. Dajmy na to dziś włączam skrypt i zaczyna odliczanie. Za tydzień licznik powinien dalej bić nieważne skąd wszedłem na stronę i przy pomocy jakiej przeglądarki. Mam nadzieję, że w miarę to wyjaśniłem. Może po prostu co sekundę zapisywać ilość sekund do bazy i potem to przeliczać na minuty, godziny i wyświetlać za pomocą javascript? Jakieś pomysły jak najefektywniej wykonać taki licznik?

1

Może po prostu co sekundę zapisywać ilość sekund do bazy

wydaje mi się, że to będzie overhead.

Jeśli odliczasz czas od jakiegoś konkretnego momentu, to wystarczy, że zapiszesz początek odliczania w bazie i policzysz różnicę.

No chyba, że czas ma się odliczać tylko wtedy jeśli użytkownik jest na stronie, a gdy zamknie to stronę, to ma przestawać bić?

w sensie co ma się stać, jeśli wejdę na stronę, pobędę na niej minutę, potem zamknę, po godzinie włączę znowu? Licznik ma mieć wartość 1 minuta wtedy, czy ma wskazywać 1 godzinę i 1 minutę?

0

czy ma wskazywać 1 godzinę i 1 minutę?

Ma wskazywać 1 godzinę i 1 minutę.

0

Mógłbyś chyba do tego wykorzystać nawet event scheduler po stronie bazy danych i ją odpytywać, np. co 1 sekundę. Overview.

1 użytkowników online, w tym zalogowanych: 0, gości: 1