Обновлять содержимое автоматически, если база данных изменяется

как я могу автоматически добавить значение строки базы данных (PHP) на страницу без обновления самой страницы при изменении таблицы базы данных mysql?

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

Благодарю. Я попытался сделать это максимально ясным.

Обратите внимание, что это устаревший ответ. Последние способы сделать это: websockets, server-send events. Хорошим примером этого является Firebase. Вы можете найти простой пример кода в: https://github.com/laithshadeed/wsk-feedback . В этом примере вы увидите, что обновление firebase отправит событие в браузер через websocket, а затем обновит пользовательский интерфейс.

Это называется Comet / Reverse Ajax / HTTP-сервер push http://en.wikipedia.org/wiki/Comet_(programming) . Это много методов для этого, а также многие существующие рамки, чтобы сделать это за вас.

В SO много ответов о кометах https://stackoverflow.com/search?q=comet

Простой реализацией будет javascript setTimeout и setInterval для проверки состояния сервера, с триггером / хранимой процедурой на mysql.

Для погружения глубины в комету. Об этом есть две классные книги:

Комета и реверс Ajax 2008 by Dave Crane

Комета и обратное изображение Ajax Cover

Глава 4 (Река контента) – Создание пользовательского опыта в реальном времени 2010 Тед Роден

Создание образа пользователя в реальном времени

Обновление . Вы можете посмотреть на новые методы в HTML5, такие как Websockets и Server-sent Events, хотя IE не поддерживает их хорошо, на данный момент события, отправленные сервером, не поддерживаются в IE и веб-сокетах, поддерживаемых только в IE10

Это не совсем простая задача, но это не так уж плохо. Вам нужно несколько вещей, работающих в концерте:

  • Процедура javascript на вашей странице, которая проверяет сервер с указанными интервалами
  • Страница на вашем сервере, которая сообщает об изменениях при опросе
  • Функция обратного вызова на вашей странице, которая вставляет новые элементы (или обновляет / удаляет существующие элементы) при изменении данных, сообщается сервером.

Как вы определяете, какие данные были изменены, вам придется подумать. Самый простой способ, вероятно, состоит в том, чтобы для каждой записи поддерживалось «измененное» поле. Таким образом, когда ваш javascript опрашивает сервер, он может включать отметку времени «последний раз, когда я проверял», и сервер должен вернуть только те изменения, которые являются более поздними.

Это не так сложно, как может показаться на первый взгляд. Воспользуйтесь предварительно построенными библиотеками, такими как jQuery, и вы можете делать такие вещи, как:

$.ajax({ url: 'http://example.com/checkforupdates.php?last=' + (new Date().getTime()), context: document.body, success: function(data){ // do something here to add/update/remove elements on your page // using the information returned in the data argument. } }); 

Манипулируйте DOM с помощью JavaScript.