Использование Jquery для обновления страницы при изменении базы данных - PullRequest
6 голосов
/ 19 мая 2011

Я хочу обновить страницу, когда моя база данных будет изменена. Я хочу использовать jquery для этого. Вопрос не понятен? Тогда взгляните на это. Предположим, это моя страница:

<?php
 $query=mysql_query("select * from tbl1 where user='admin'");
 if(mysql_num_rows?($query)!=0)
 {
   echo 'Table 1 has values';
 } else {
   echo 'Table1 is empty';


}
?>

Это действие следует выполнять всякий раз, когда в базу данных добавляется новая запись. Теперь предположим, что я добавляю запись в базу данных вручную, тогда на странице должен автоматически отображаться результат в виде «Таблица1 имеет значения». Я знаю, что его можно периодически использовать при обновлении страницы, но я не хочу его использовать. Вместо этого я хочу попробовать что-то другое, например, опрос ajax? Может кто-нибудь дать мне демо?

Ответы [ 3 ]

1 голос
/ 19 мая 2011

Вы можете использовать Ajax jQuery Framework с Ajax:

http://www.w3schools.com/Ajax/default.asp
http://api.jquery.com/jQuery.ajax/

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

1 голос
/ 19 мая 2011

Вы можете использовать длинный опрос, но сначала проведите много исследований.Ваш сервер может прервать запрос, который кажется открытым в течение длительного времени.

В PHP ваш код будет выглядеть примерно так ...

set_time_limit(0);

while (TRUE) {
   // Query database here
   if ($results) {
      echo json_encode($results);
      exit;
   }

   sleep(1);
}
0 голосов
/ 19 мая 2011

Вы ищете решения Ajax-Push / Comet. Это не тривиально.
Вы также упомянули пул ajax.
Что ж, на стороне сервера вам нужно выполнить цикл до тех пор, пока у вас не появится тайм-аут (который вы определили сами или на сервере, убедитесь, что вы возвращаете код состояния HTTP для Timeout Occured) или запрос может быть удовлетворен.
А на клиентской стороне всякий раз, когда вы успешно завершаете операцию, просто обрабатываете ее и затем снова делаете тот же самый вызов ajax, если по истечении времени просто повторяйте тот же самый запрос ajax, пока он не будет удовлетворен.

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