Obliczanie liczby x+y odświerzanie bez przeładowywania

0

Potrzebuje napisać skrypt który będzie działał na tej zasadzie:

  • mamy np. liczbę x = 100, będzie ona pobierana np z jakiejś bazy danych
  • będzie ona rosła o np.: y = 10, np. co z = 1 sekundę, też mogą być pobierane z bazy
  • przy pierwszym wczytaniu skrypt wyświetli te liczbę 100, po czym strona ma się odświeżać co 5 sekund
  • więc liczba 100 powinna po pierwszym odświeżeniu urosnąć do 150, po kolejnym do 200 itd...

Nie mam problemu z odczytaniem danej liczby x czy y, nie mam też problemu z odświeżeniem strony z wybranym interwałem bez przeładowania całej strony. Problem jest w tym że nie mam pojęcia jak w locie wyliczać liczbę x rosnącą o y co z sekund. Chodzi o to żeby nie wysyłać co 5 sekund nowych zapytań do bazy danych, gdzie takich wyliczeń będę potrzebował kilku, zapytanie ma być wykonane tylko przy przeładowaniu całej strony.

0

Przy wyświetlaniu: x =+ ([czas obecny] - [czas ostatniej aktualizacji]) / z * y

0

Tylko teraz skąd wziąć [czas ostatniej aktualizacji]? Jak to przemycić np. w jakiejś zmiennej do stanu po odświeżeniu? Nie chcę każdej akcji gdziekolwiek zapisywać do plików czy do bazy.

0

Jeżeli logikę chcesz mieć po stronie serwera:
Ajax + zmiana fragmentu strony (np. a4jsf)

Jeżeli logika może być po stronie klienta:
JavaScript + zmiana fragmentu strony co pewien czas

0

Dlaczego nie chcesz tego czasu przechować w bazie danych?

0
__krzysiek85 napisał(a):

Jeżeli logikę chcesz mieć po stronie serwera:
Ajax + zmiana fragmentu strony (np. a4jsf)

Jeżeli logika może być po stronie klienta:
JavaScript + zmiana fragmentu strony co pewien czas

Lepszym rozwiązaniem było by po stronie klienta, aby nie przesyłać co kilka sekund danych do serwera. Lecz nadal nie mam pojęcia jak to napisać aby przechować ten [czas ostatniej aktualizacji].

Rev napisał(a):

Dlaczego nie chcesz tego czasu przechować w bazie danych?

Nie chcę być niegrzeczny, ale myślę że te pytanie jest troszkę niepotrzebne. Chcę się pozbyć zbędnych czy zbyt częstych zapytań do serwera czy bazy danych, aby zminimalizować transmisje danych. Gdybym chciał zapisać [czas ostatniej aktualizacji] w bazie danych, to prostszym i szybszym rozwiązaniem było by odświeżenie strony które by powodowało pobranie z bazy danych aktualnej liczby x.

0

Skoro boisz się jednego zapytania podczas odświeżenia strony to zbuduj usługę serwerową, która będzie ci serwowała te wartości real-time.

Przechowywanie jakiejkolwiek logiki po stronie klienta skończyć się może co najmniej nieprzyjemnie, no, ale pewnie wiesz lepiej.

0

Rev chyba się nie rozumiemy. Jak to jednego zapytania? Dajmy że takich zapytań/wyliczeń będzie 3 na stronie. Dajmy że skrypt odświeża się co 5 sekund co daje 12 zapytań wciągu minuty, więc wychodzi 36 zapytań od jednego klienta/użytkownika w ciągu 1 minuty. w przypadku 10 użytkowników w ciągu 10 minut tych zapytań będzie 3600... 0 optymalizacji!

I tu jest moje pytanie, czy da się tak zrobić aby przechować u klienta te dane (a na pewno się da), jeśli tak to jak to zrobić na tyle bezpiecznie aby nie było trzeba cały czas zapytywać bazę danych.

0

Jak 3610=3600, skoro napisał, że w ciągu 10 minut, a nie w minucie...
To daje nam 10 użytkowników po 36 zapytań, czyli 360, lecz on napisał, że podczas 10 minut.
360
10=3600?
Trudno ogarnąć widzę.

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