@Valenco

Как сделать таймер на php и js?

Как сделать таймер на php, по окончанию которого выполнится код (пробовал какое-то свойство, но оно просто загружало страницу спустя определённое время). Этот таймер должен динамично выводится на страницу (тоесть каждую секунду) и это, я так понимаю, можно реализовать только на js. Таймеры js'а и php должны быть синхронизированы
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Согласен с dollar отчасти, но попробую дать направление.

Для старта таймера делается некий запрос, например переход на страницу start_timer.php
Здесь скрипт берет текущее время, прибавляет к нему необходимый интервал, например пять минут, записывает новое время куда-нибудь, например в базу данных.
Далее пользователь отправляется на скрипт ожидания wait_timer.php
Этот скрипт берет текущее время и время из базы, вычисляет разницу, если она положительная, то формирует html страницу с javascript таймером, передавая туда вычисленную разницу - это время, которое осталось до окончания работы таймера. Джаваскрипт таймер начинает тикать. Когда дойдет до конца, он сделает обновление страницы. Скрипт wait_timer.php снова проверит оставшийся интервал, если он стал нулевым или отрицательным, отправит пользователя на третью страницу end_timer.php. Если разница все еще положительная, скрипт wait_timer.php так же сформирует страницу с js таймером и отдаст ее.

Разделение скриптов на start, wait и end - условное. Это вполне может быть один и тот же скрипт (страница), просто где-то на сервере, сохраняется состояние для текущего пользователя, что его таймер уже запущен, или наоборот еще не запущен.

В таком простом варианте не учитывается разница времени из-за длительности http-запроса, поэтому, если нужна миллисекундная точность, то нужно будет применить дополнительные методы синхронизации.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
А вы что, не сообразили, что загрузка какой-то страницы - это и есть выполнение некоего скрипта?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы