Предупреждение Ajax, когда строка добавлена ​​в базу данных mysql - PullRequest
4 голосов
/ 29 июня 2010

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

Есть какие-нибудь идеи о том, как мне легко этого добиться?

Спасибо, -AJay

Ответы [ 3 ]

4 голосов
/ 29 июня 2010

Вам нужно будет использовать что-то вроде Comet , чтобы иметь возможность передавать данные клиенту.

Затем используйте MySQL триггер , чтобы как-то вызвать событиев вашем серверном приложении, которое удерживает соединение Comet открытым, чтобы отправить соответствующие данные.

Менее элегантный способ, которым пользуются многие разработчики (по крайней мере, до тех пор, пока WebSockets не станет популярным), это опрос с AJAX для изменений , но это имеет высокую пропускную способность и большую задержку.

1 голос
/ 29 июня 2010

В режиме AJAX вы должны использовать таймеры в javascript, как это ...

// First parameter is an expression and second is a interval as miliseconds.
setTimeout ( "UpdateFunction()", 2000 );

Также я рекомендую вам использовать этот код ...

setTimeout ( "UpdateFunction()", 5000 );

function UpdateFunction( )
{
  // (do something here)
  setTimeout ( "UpdateFunction()", 5000 );
}

ваш UpdateFunction() должен вызвать страницу php или asp, которая обновляет список заказов.

0 голосов
/ 29 июня 2010

Я бы подумал, что подход с опросом будет вам полезен, так как продвижение сервера имеет много негативных последствий для браузера.

Если вы используете маршрут опроса, я бы предложил, чтобы на вашей странице происходило временное событие, которое будет вызывать веб-метод. Затем веб-метод возвращает данные (что-то маленькое, например, идентификатор) о поставленных в очередь заказах. Сравните список идентификаторов с тем, что в настоящее время выделено на странице, и, предположив, что у вас есть что-то в новом заданном списке, который не существует (или наоборот), вызовите отдельный метод, чтобы получить дополнительную информацию для отображения отображения новых заказов из или удалите старые записи.

Таким образом, вам не нужно поддерживать постоянный поток на сервер (который может заблокировать браузер пользователя от выполнения дополнительных запросов контента).

Надеюсь, это помогло.

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