Подтвердить что ты не робот

Используйте AJAX для просмотра базы данных SQL для изменений

У меня есть столбец в моей базе данных, который будет обновляться случайным образом. Всякий раз, когда этот столбец обновляется, мне нужно обновить содержимое на моей странице. Как я могу использовать AJAX + jQuery для выполнения действий только при изменении БД?

4b9b3361

Ответ 2

То, что вы описываете, называется разговорным Comet. Комета описывает группу методов для продвижения контента на веб-страницу с постоянным HTTP-соединением.

Пуск будет инициирован с использованием комбинации триггера/хранимой процедуры на сервере базы данных. Таким образом, это происходит независимо от того, откуда происходит обновление данных.

Ответ 3

Сервер (база данных/сеть) не может инициировать соединение - только клиент может. Поэтому вам придется опросить базу данных до тех пор, пока не появится обновление. Вы можете создать веб-службу, которая проверяет базу данных и какой jQuery использует.

Изменить: Я исправляюсь. Можно поддерживать соединение AJAX открытым до тех пор, пока сервер не "подталкивает" данные к нему. См.: http://en.wikipedia.org/wiki/Reverse_Ajax

И, по-видимому, это действительно опрос: http://en.wikipedia.org/wiki/Push_technology#Long_polling. Если сервер еще не имеет данных для отправки, он держит соединение открытым до тех пор, пока оно не произойдет. Это не "чистая" технология push, потому что клиент не имеет порта прослушивания, к которому подключается сервер. Однако эффект аналогичен.

Изменить 2: Итак, вернемся к ответу на ваш вопрос... Вам нужно будет выбрать способ опроса веб-службы. Затем веб-службе необходимо проверить базу данных, чтобы узнать, есть ли обновления. Проверка базы данных на обновления может оказаться сложной и действительно зависит от ваших требований. Вы можете запустить SQL-запрос, чтобы узнать, что-то изменилось, но как вы узнали? Для сравнения вам понадобится какой-то параметр (обычно дата). Если все сделано неправильно, вы можете пропустить некоторые обновления или иметь несколько обращений за одним обновлением. То, что сказал автократия, было бы хорошим способом получить уведомление об обновлениях. Вы можете сохранить этот список в базе данных, в памяти и т.д. И очистить его, когда клиент получит обновления.

Ответ 4

Im делает почти то же самое с чатом, перезагружает php script каждые xx сек.

Похож: замените j на $, если не используете jquery.noconflict..

j(".chatref").everyTime(3000,function(i){
    j.ajax({
       url: "chatx.php",
       cache: false,
       success: function(updated){
           j(".chatref").html(updated);
           ...do stuff..
       }
   });

Это очень хороший метод, который я думаю:) если вы хотите отправить vars в chatx.php, просто добавьте? php & x = 1 & y = 2? >

Ответ 5

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

Другой вариант - опрос.

Ответ 6

Вам придется постоянно опросать страницу, которая имеет значение из базы данных.

Ответ 7

Я бы предложил создать HTML-страницу, которая использует setIntreval(), чтобы неоднократно совершать вызовы AJAX на PHP script, который запрашивает вашу базу данных. Вы можете использовать JSON и PEAR, чтобы облегчить задачу.

Ссылки:

Ответ 8

Вам в основном придется постоянно опробовать сервер для внесения изменений в БД. Сервер не может позвонить клиенту, поэтому клиенту просто нужно будет постоянно спрашивать сервер, были ли изменения.