![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam !
Mam mały problem, z którym nie potrafię sobie poradzić. Kawałek kodu, który wczytuje plik php do div i go przeładowywuje: index.html
w pliku ajaxfl.php jest kawałek:
która odpowiada za odliczanie czasu (czyli z wartości 100 zrobi 1m 40s, 1m 39s...). Niestety co odświeżenie "load" skrypt ten się duplikuje i odejmuje w tym samym czasie kolejną sekundę, czyli 10, 8, 5, 1. Nie można przenieść kodu js do pierwotnego pliku, ponieważ wartość czasu jest pobierana z bazy danych a nowe rekordy mogą się pojawiać w każdym momencie, czas również musi się odliczać, a odświeżanie div co sekundę (ze stałym czasem) może spowodować spory problem dla serwera. Na łatwiznę nie poszedłem, wszystkie możliwe próby naprawy tego problemu kończyły się fiaskiem. clearsetinterval stopuje mi odświeżanie gdziekolwiek bym go nie wstawił. Bardzo proszę o pomoc Ten post edytował Deusx 27.01.2015, 17:04:38 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A co to za funkcja tfmX()? Za każdym wywołaniem zmienna $i jest inna?
I napisz jaki efekt właściwie chcesz uzyskać. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
tfmX() wyświetla dokładną datę czyli np.: 19:40:12 27 stycznia 2015
fltX() to właśnie owe odliczanie do daty (co sekundę) i odpowiada za ilość rekordów, z każdym kolejnym inkrementuje się. Jak plik się odświeży, to nie odlicza po sekundzie 10 sek, 9 sek, 8 sek tylko dodaje sekudne co każde odświeżenie. Dzięki zapytaniu o zmienna $i udało mi się naprawić błąd poprzez właśnie jej losową wartość, jednak chciałbym zrobić to w sposób właściwy. Ten post edytował Deusx 27.01.2015, 19:49:15 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Czy data jest stała (zakładam, że to data zakończenia aukcji)? Jeśli tak, to czemu za każdym razem pobierasz ją z serwera?
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Data może ulegać zmianą przez akcję użytkownika
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Co każde odświeżenie pobieraj więc tylko datę, a funkcję zmniejszającą wstaw bezpośrednio w setInterval odejmując 3 sekundy od daty, albo osobną setInterval z interwałem 1 sekunda i odejmując 1 sekundę od daty.
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przed napisaniem tematu zrobiłem tak jak proponujesz, jednak wywołać funkcję muszę w ajaxfl.php i tutaj jest problem, bo wywołuje ją raz, drugi, trzeci... i efekt jest identyczny mimo, że kod javascript został wyniesiony z ajaxfl.php.
Wszelkiego rodzaju kodowanie, json nic tutaj nie pomaga. Zrobiłem wszelkie możliwe kombinację, jednak zawsze wracałem do początku - wszystko ma być w ajaxfl Samo otworzenie ajaxfl.php da nam wszystkie pożądane rekordy z działającym kodem JS i ten kod działa ponad rok czasu do teraz poprzez echo w php. Co daje wiadomy efekt jednorazowego załadowania i koniec. Zaznaczę że głównym problem tego pliku jest fakt więcej niż jednego odmierzacza czasu i wyświetlania daty czy w ogóle w działaniu kodu js. Pierw z innymi skryptami do auto przeładowywania (wyłącznie) określonego div kod JS w ogóle nie działał bądź umierał z pierwszym odświeżeniem albo działy się inne cuda. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego funkcję odmierzającą czas musisz wywołać w pliku ajaxfl.php?
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 21:23 |