kpodyganov
@kpodyganov
Увлекаюсь фронтенд-разработкой

Как организовать выполнение скрипта (AJAX) только когда есть обновление в базе данных?

Есть AJAX запрос, который выводит новости из таблицы в базе данных, если отправлять запрос каждые 10 секунд то это будет просто трата трафика, как узнать, есть ли обновление в базе данных?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 4
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Никак. Придётся основательно переделать вашу систему, чтобы не клиент ajax'ом поллил сервер, а сервер отправлял клиенту новые данные по websocket'у.
Ответ написан
Комментировать
irishmann
@irishmann
Научись пользоваться дебаггером
Никак, AJAX не предназначен для этого. Потому что AJAX ориентирован на запрос - вы отправляете запрос на сервер, сервер отвечает, и соединение закрывается. Используйте Websockets, Websockets устанавливают постоянное соединение с сервером, по которому вы обмениваетесь несколькими сообщениями в обоих направлениях.
Ответ написан
Комментировать
веб-сокеты позволяют избежать повторных запросов AJAX
Ответ написан
Комментировать
Digiport
@Digiport
PHP рулит
А что такого ужасного чтобы раз в 10 секунд спрашивать у сервера есть ли обновление? Если база толстая, сделайте прослойку, отдавая в запрос некий хэш базы. AJAX опрашивает это состояние. Если хэш предыдущего запроса не совпадает с текущим на сервере, то делаете запрос на обновление. После обновления сохраняете новый хэш на стороне клиента. Ну и далее по-кругу. На сервере при обновлении базы вычисляете хэш и сохраняете в каком-то месте, откуда его AJAX будет получать. Таким образом вы избежите необходимость каждый раз делать запрос к базе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы