Javascript - odświeżanie daty

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Bartosz1166
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 30 paź 2011, 11:50
Płeć: Mężczyzna
Wersja Ubuntu: 13.04
Architektura: x86_64
Kontakt:

Javascript - odświeżanie daty

Post autor: Bartosz1166 »

Witam. Na mojej stronie internetowej oprócz zegarka napisanego w js zamieściłem skrypt wypisujący dzień, miesiąc i rok. Chciałem, zeby skrypt odświeżył się tylko raz o godzinie 0:00. Na razie co do odświeżania kod wygląda tak:
var aktualna=new Date()
var godzina = aktualna.getHours();
if(godzina == 0){
timedRefresh(3600000);
}
Proszę o pomoc w poprawieniu tego kodu :)
ad3r
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 15 kwie 2009, 15:54
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Re: Javascript - odświeżanie daty

Post autor: ad3r »

Potrzebujesz odświeżenia całej strony czy tylko zegara na widoku?
Jeśli to tylko zegar to funkcja setTimeout() powinna załatwić sprawę.

Kod: Zaznacz cały

function updateTime() {
  var godzina = aktualna.getHours();
  // jakiś kod
  setTimeout('updateTime()',5000);
}
Jakoś tak by to mogło wyglądać.
Nie jest to operacja czasochłonna ani zasobożerna więc nie wysilaj się na nic skomplikowanego :)
Awatar użytkownika
rob006
Wytworny Kaczor
Wytworny Kaczor
Posty: 417
Rejestracja: 28 paź 2007, 23:11
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Lublin
Kontakt:

Re: Javascript - odświeżanie daty

Post autor: rob006 »

Można to rozwiązać trochę inteligentniej - po załadowaniu strony sprawdzasz aktualną godzinę, obliczasz ile sekund zostało do północy i na tej podstawie ustalasz wartość dla setTimeout(). Sprawdzenie wykonuje się tylko raz, zmiana jest zawsze na czas, a js nie mieli co jakiś czas jednego bezsensownego warunku.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Javascript - odświeżanie daty

Post autor: ethanak »

przecież jak ma zegarek to i tak mu mieli... a ciężko sprawdzić przy okazji np.

Kod: Zaznacz cały

day=now.getDay()
if (day != oldday) {
refreshcośtam();
oldday=day;
}
now i tak ma w zegarku.
Awatar użytkownika
rob006
Wytworny Kaczor
Wytworny Kaczor
Posty: 417
Rejestracja: 28 paź 2007, 23:11
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Lublin
Kontakt:

Re: Javascript - odświeżanie daty

Post autor: rob006 »

ethanak pisze:przecież jak ma zegarek to i tak mu mieli...
No właśnie nie - zaproponowałeś dorzucenie kolejnego warunku, który będzie sprawdzany co sekundę. Po co, skoro już na samym początku wiemy że przez X godzin go nie spełni?
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Javascript - odświeżanie daty

Post autor: ethanak »

koszt jest niewielki, a kod przynajmniej czytelny.
Awatar użytkownika
rob006
Wytworny Kaczor
Wytworny Kaczor
Posty: 417
Rejestracja: 28 paź 2007, 23:11
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Lublin
Kontakt:

Re: Javascript - odświeżanie daty

Post autor: rob006 »

No nie wiem czy taki czytelny, skoro to jest problem, to prawdopodobnie data jest traktowana jako osobny element. W tym momencie do kodu obsługującego godzinę doklejasz kod obsługujący datę - mieszasz 2 elementy. Poza tym nie wiem czemu dodanie kodu sprawdzającego raz datę miałby być mniej czytelny - objętościowo wychodzi niemal to samo, a logika też nie jest zbyt skomplikowana.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Javascript - odświeżanie daty

Post autor: ethanak »

na telefonie teraz nie napiszę, ale postaram się w domciu jskiegoś snipetka spłodzić - ocenisz sam. jeśli będzie do niczego - nie obrażę się, ostatnio rzadko coś większego w js tworzę.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości