Уведомить о создании записей MySQL с помощью AJAX - PullRequest
0 голосов
/ 29 мая 2011

Я работаю над проектом и хотел бы получать уведомления каждый раз, когда новая запись добавляется в конкретную таблицу в БД MySQL.Я хотел бы, чтобы при каждом добавлении новой записи отображалось небольшое всплывающее окно, но без обновления страницы.Я слышал, что AJAX - это путь, но я не очень знаком с ним.

1 Ответ

3 голосов
/ 29 мая 2011

Нет, не будет. База данных не сообщит вам, когда будет вставлена ​​запись. Вы можете использовать AJAX для отправки запроса на сервер. Затем этот сервер может запросить изменения. Он может отправить ответ, указывающий, есть ли изменение. Затем обработчик ответа AJAX-запроса может показать сообщение соответствующим образом.

Но реализация этого вызовет большую нагрузку как на веб-сервер, так и на сервер базы данных. Так что, если вы делаете это, выбирайте время с умом. Не выполняйте эту процедуру 10 раз в секунду, иначе вы убьете свой сервер, как только наберете 100 посетителей.

Чтобы решить вашу проблему, разбейте ее на две части: 1. Получить фактический запрос AJAX для работы. Пусть сервер вернет фиктивные значения и попытается их правильно обработать. Подсказка: используйте JQuery.ajax (или даже JQuery.get), чтобы облегчить свою жизнь. 2. Получите сервер, чтобы запросить изменения. Если вы хотите контролировать одну таблицу, это легко сделать. Добавьте столбец отметки времени в таблицу, если у вас ее еще нет. Вы можете настроить его так, чтобы он обновлялся при каждом обновлении таблицы. Затем запросите самую высокую метку времени. Не забудьте добавить индекс к этому столбцу!

Вы можете поэкспериментировать и с другими решениями. Добавьте триггер, который изменяет дату / время в другой таблице. Таким образом, опрос должен запрашивать только один столбец, а не запрос «max».

Чтобы правильно обрабатывать изменения, я думаю, лучше всего позволить Javascript удерживать до последней отметки времени. Отправьте метку времени обратно в ответе. Javascript может сравнивать отметку времени с последней отметкой времени и показывать сообщение при необходимости. Таким образом, вам не нужно будет сохранять временные метки в сеансе.

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