Динамическая проверка базы данных mySQL на предмет того, прошло ли текущее время дату и время, сохраненные в базе данных - PullRequest
1 голос
/ 04 февраля 2012

В основном у меня есть серия таймеров обратного отсчета для аукционов на моем сайте.Я делаю это, сохраняя время окончания обратного отсчета в базе данных и использую JavaScript для создания обратного отсчета.Мне было просто интересно, как веб-сервер мог постоянно проверять, закончился ли обратный отсчет и, если есть, динамически менять статус аукциона с «не завершен» на «завершен».у меня должен быть постоянно работающий скрипт на моем веб-сервере?который продолжает запрашивать базу данных, чтобы проверить, достигнуто ли время окончания обратного отсчета?

ps im, используя apache, mySQL и PHP

любые мнения или помощь приветствуются!

Джонни

Ответы [ 2 ]

3 голосов
/ 04 февраля 2012

Постоянная проверка не будет масштабироваться вообще. Маловероятно, что время окончания изменится, поэтому вы можете просто указать время окончания каждого аукциона на веб-странице и использовать javascript, чтобы изменить статус на завершенный, когда это время достигнуто.

Конечно, кто-то может отредактировать javascript и изменить время окончания, но клиент только для отображения. Вы можете сделать один последний звонок на сервер в конце времени, чтобы проверить, продлен ли аукцион. Сервер остается тем авторитетом. Любая отправка по-прежнему должна проверяться временем сервера, а не тем, что отображалось на компьютере пользователя.

0 голосов
/ 04 февраля 2012

Для меня логика выглядит так

  1. Загрузите время окончания по умолчанию, используя значение базы данных, и запустите счетчик через javascript.
  2. когда истекшее время приближается к времени окончания аукциона, скажем, всего за 1 или 2 секунды, вы можете проверить, изменилось ли время окончания, вернуть новое значение и передать его обратно в таймер Javascript.

Выше применимо, только если вы по какой-то причине увеличиваете время окончания.

Если нет, то вы можете полагаться исключительно на javascript для подсчета времени для вас, а когда достигается время окончания с помощью счетчика javascript, просто сделайте быстрый вызов ajax, чтобы обновить базу данных (если она вообще требуется)

Вы всегда должны загружать время окончания вашей функции javascript из вашей базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...