| -Mat00- |
Post
#1
|
|
Goście |
Witam,
Chcę opóźnić wykonanie fragmentu kodu na około 3 minuty. Użyłem ob_flush(); flush(); sleep(); ale nie działają. Blokują wczytanie całej strony na 3 minuty i potem wywalają wszystko naraz. Jest mi to potrzebne ponieważ w jednym z cms chcę dodać punkty użytkownikowi np. za przeczytanie artykułu, ale dopiero po 3 minutach od wejścia. Wszystko działa mi idealnie tylko nie wiem jak opóźnić ten czas... może znacie jakieś zupełnie inne rozwiązania ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Samo opóźnienie wykonania kodu Ci nic nie da. Bo co jeżeli użytkownik wejdzie na stronę, serwer zacznie odliczać trzy minuty, a następnie użytkownik zamknie okno przeglądarki? Musisz nieco inaczej to rozwiązać.
1. Użytkownik wchodzi na stronę - w sesji zapisujesz czas tego wejścia. 2. Na stronie wrzucasz skrypt JS, który przy pomocy AJAX-a, przykładowo co 30-60 sekund wysyła do serwera żądanie, którego celem jest jedynie poinformowanie serwera o tym, że użytkownik nadal jest na stronie. 3. Skrypt, do którego wysyłane jest żądanie z punktu 2. zapisuje sobie w sesji informację o czasie ostatniej aktywności. Ponieważ ma dostęp do tych samych danych (zapisanych w sesji) co skrypt z punktu 1. może porównać czy czas ostatniej aktywności, czyli obecny czas, minus czas rozpoczęcia oglądania (nadany w pierwszym punkcie) jest większy bądź równy trzem minutom - jeżeli tak, wykonaj dowolny kod jaki tam potrzebujesz. |
|
|
|
Mat00 [PHP]Opóźnienie wykonania części kodu 19.07.2012, 11:35:06
wNogachSpisz W PHP ciężko coś takiego zrobić bez kombinacji. Je... 19.07.2012, 11:37:56
markonix Sposób dobry jeżeli mówimy o własnych podstronach.... 19.07.2012, 15:45:10 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 14:07 |