PHP: отложенный запрос к базе данных также без активной страницы

Так, например, я нажимаю кнопку, которая отправит что-то в базу данных через 1 минуту, но я хочу также отправить это если я уйду со страницы : )

Итак, если я выйду со страницы, когда от 1 минуты осталось 30 секунд, обратный отсчет будет продолжаться до тех пор, пока не достигнет 60 секунд, а затем отправит данные в базу данных.

Надеюсь, что все ясно. Я думаю, что мне следует использовать для этой СЕССИИ , но, пожалуйста, дайте мне знать, если вы знаете ответ или что-нибудь полезное :)

пример: на http: //www.travian. com / , когда вы начинаете что-то строить, у вас появляется обратный отсчет «будет закончен через xx: xx: xx»; тем не менее, вам не нужно держать браузер открытым - обратный отсчет все еще выполняется на сервере, даже если вы выйдете из системы.

Или, скажем, пример из реальной жизни:

Представьте себе систему ведения блогов, такую ​​как wordpress, где я пишу 10 сообщений в день, но я хочу показывать пользователям только 5 / день .

Или я хочу показать пользователям в 8:00 AM

Или другой, взятый из Travian:

Представьте себе игру , в которой вы можете создавать войска, но чтобы создать войска, вам нужно подождать, потому что жизнь нелегка: D, поэтому для отряда нужно подождать 1 минуту .

1
задан pnuts 9 November 2015 в 02:06
поделиться

3 ответа

Это невозможно. Пользователь может покинуть страницу из-за ошибки подключения к Интернету или из-за отключения электроэнергии, после чего он не сможет отправить информацию в базу данных.

Что вы можете сделать, так это немедленно сохранить данные в базе данных с отметкой времени «не открывать раньше», чтобы имитировать задержку в одну минуту, и добавить дополнительное ограничение ко всем запросам к этой таблице:

WHERE createDate < NOW()
1
ответ дан 2 September 2019 в 21:42
поделиться

это действие не гарантируется. Я также могу покинуть страницу с закрытым браузером. Создание решения на основе базы данных является лучшим.

0
ответ дан 2 September 2019 в 21:42
поделиться

Возможно, вы хотите использовать команду javascript, чтобы инициировать задержку, потому что с помощью Javascript вы можете отправить данные в PHP через AJAX, и если вы инкапсулируете этот AJAX в функцию, а затем вызываете это из своей функции «задержки».

Для выхода из страницы вы также можете использовать:

window.onbeforeunload=delayFunction;

Надеюсь, это поможет.

1
ответ дан 2 September 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: