Через 30 секунд обновите базу данных MYSQL. - PullRequest
1 голос
/ 14 июня 2010

Я искал здесь на SO и Googling, однако я не могу найти ничего, что соответствует моему описанию.

Я хочу обновить базу данных, если страница не обновлялась через 30 секунд. Я хочу отправить электронное письмо человеку с содержанием формы {отправленной другим пользователем} (я могу это сделать), ЕСЛИ человек НЕ посещал страницу (я могу это сделать) в течение последних 30 секунд.

Я пытался обновить страницу, которую нужно посещать, каждые 30 секунд, и поэтому я подумал, что если я сделаю что-то подобное через 31 секунду, отредактирую базу данных (поэтому, если обновленная страница не обновлялась, редактирование базы данных будет запущено).

Извините, если это звучит сложно, возможно, есть лучший способ сделать это, но я не знаю, как.

В целом, я пытаюсь сделать что-то вроде «дежурного», чтобы, если человек не будет активно смотреть на страницу, ему будет отправлено электронное письмо с содержимым формы. Страница будет содержать таблицу всех введенных результатов формы.

Ответы [ 4 ]

4 голосов
/ 14 июня 2010

Вы можете обновить базу данных, создавая запись с отметкой времени каждый раз, когда пользователь обновляет страницу.Затем вы можете иметь работника PHP, который регулярно просматривает базу данных, если отметка времени старше 30 секунд, и запускает электронную почту.

1 голос
/ 14 июня 2010

Я не могу предоставить php-решение для серверной части работы. Но в основном вам нужно настроить таймер javascript (например, jquery timeout) и через 30 секунд выполнить вызов ajax, который будет делать то, что вы хотите на сервере (сохранить что-то в db, отправить электронную почту и т. Д.).

Надеюсь, я понял вашу точку зрения, и мой совет как-то вам поможет.

0 голосов
/ 14 июня 2010

Я бы предложил использовать javascript следующим образом:
window.setTimeout("location.reload(true);", 3000);

Это, конечно, если вам отчаянно нужно перезагрузить компьютер, но пользователь, очевидно, будет зол, если вы перезагрузите окно для него.

0 голосов
/ 14 июня 2010

может использовать вызов AJAX каждые 30 секунд, основываясь на функции setTimeout javascript?

http://www.w3schools.com/js/js_timing.asp

function timedCount()
{
    # ajax call
    t=setTimeout("timedCount()",30000);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...