Может кто-нибудь объяснить, как создать страницу .php, которая автоматически обновляет значения из базы данных? Будет ли использование AJAX лучше для чего-то подобного? Я хочу этот PHP-код, но я хочу, чтобы страница обновлялась всякий раз, когда «values01» добавляется или изменяется, без необходимости обновлять страницу.
$query = "SELECT values01 FROM users WHERE username='$username'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo nl2br("{$row['values01']}");
}
Любая помощь будет оценена! :)Использование AJAX для страницы автоматического обновления, содержащей значения из базы данных?
3
A
ответ
2
То, что вы описываете, будет push-уведомлением с веб-сервера. К сожалению, я не нашел надежного способа сделать традиционный толчок, когда веб-сервер инициировал соединение с клиентом (из моих ограниченных исследований, по-видимому, были предложения по стандарту http для поддержки push, однако это не так Похоже, что широко принятый стандарт когда-либо появлялся). Однако это можно сделать немного более круговым способом.
Существует способ обойти нажимной ограничения, которые, как правило, используется:
- браузер подключается к странице, загружает текущее «состояние» в базе данных. Переменная сессии (позволяет вызывать ее $ _SESSION ['currentState']) сохраняется со стартовым состоянием базы данных. Таймер javascript в браузере клиента начинает тикать вниз (позволяет просто сказать, что таймер длится 10 секунд).
- Как только таймер истекает, вызов AJAX выполняется для скрипта на сервере. Позволяет называть этот скрипт «updateValues.php». updateValues.php проверяет новое состояние базы данных. Если база данных отличается от $ _SESSION ['currentState'], мы возвращаем все изменения, сделанные в некоторой красивой форме (json, xml и т. Д.), И обновляем $ _SESSION ['currentState'] новым состоянием. Если бы не было никаких изменений, мы ответили бы чем-то таким образом.
- После получения данных браузер выполняет некоторый javascript, который затем обновляет рендеринг в браузере, если изменения были внесены в db, а затем перезапускает таймер.
- Гото 2.
Единственное, что здесь отсутствует типичный толчок уведомления, является 10-вторых (или все, что вы выбираете для своего таймера) лаг.
что вы сказали минус даже если беспокоиться толчок. –
@ Talvi Watia: Я бы точно не сказал, что я «беспокоился» о толчке. Просто указывая, что OP описывал push-подобную систему (с его необходимыми спецификациями). – MarkD