![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Może na początek nakreślę o co mi chodzi: mam stronę z aukcjami i w celu eliminacji opóźnień które spowodowane są pobieraniem czasu ajaxem. W tym celu zrobiłem że pobiera czas do tablicy w js i interwał zmniejsza sekudny, a ajax pobiera dane i ewentualnie poprawia jeśli czasy się różnią. Nie wiem czy jest to optymalne rozwiązanie ale próbowałem robić tak:
przy czym za każdym razem jest zmieniany lagsTime. Jednak takie coś nie działa. Próbowałem też żeby funkcja wykonywała sama siebie z opóźnieniem:
Jednak mimo to nie chodzi. Jak to rozwiązać? Ewentualnie może ktoś ma pomysł jak zoptymalizować wyświetlanie czasu? Ten post edytował koxu1996 26.03.2013, 20:38:29 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 3 Dołączył: 27.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Drogi koxu1996,
Po pierwsze, do takich celów interwał się nie nadaje, ponieważ nie da się zmienić czasu ustawionego w interwale. Należy użyć timeout'u. Funkcja update() powinna wyglądać mniej więcej następująco:
Jeśli chodzi o drugi kod, po prostu zamień linię: setTimeout(update(lagsTime), 0.1 * lagsTime) na: window.setTimeout("update(" + (lagsTime * 0.9) + "); ", lagsTime * 0.1); Powinno zadziałać... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat window.setTimeout("update(" + (lagsTime * 0.9) + "); ", lagsTime * 0.1); nie powinno się dawać stringa do setTimeout (antywzorzec), lepiej (bardziej poprawnie) wrzucić w funkcję. Kod setTimeout(function() { update(lagsTime * 0.9) } , lagsTime * 0.1); taj samo w drugim zamiast Kod setTimeout("update(); ", timeOut); możemy wywalić stringa i napisać: Kod setTimeout(update, timeOut); oczywiście to drobiazgi, ale lubię język JavaScript i zwracam uwagę na drobiazgi ![]() No i window jest domyślne, nie trzeba go w takich wypadkach pisać. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:07 |