PHP+MySQL+Javascript, как вывести новые записи из таблицы?

Добрый день. Существует таблица articles (id, field_a, field_b), на данный момент, используя PHP+MySQL+AJAX из нее выводятся новые строки.

На данный момент алгоритм такой:
  1. Обработчик x.php выводит все записи из таблицы articles (SORT DESC)
  2. В index.php каждые 5 секунд совершается AJAX запрос к файлу x.php и выводится его содержимое в


В моем понимании, данная реализация не совсем корректна (если корректна хотя бы насколько то), соответственно необходимо её изменить. Меня интересует какой-либо вариант получения и вывода новых записей "как только, так сразу". То есть, если в таблице появилась новая запись, пользователь тут же её должен увидеть, при этом важно, чтобы чрезмерно не "тормозил" и нагружался браузер. Поделитесь пожалуйста примерами/готовыми реализациями для самостоятельного изучения, либо укажите, в какую сторону копать. Заранее спасибо всем.
  • Вопрос задан
  • 3067 просмотров
Пригласить эксперта
Ответы на вопрос 2
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
Websockets - то, что вам нужно
Ответ написан
@Levhav
Возьмусь за разработку проектов любой сложности.
Вопрос Как узнать что добавлены новые записи в БД? задавали 5 дней назад, он очень похож на ваш вопрос.
Вам надо изучать технологию comet.

Принцип технологии comet заключается в том что браузер постоянно поддерживает открытое соединение с комет сервером это либо Long Polling соединение либо WebSockets и при необходимости отправить из php сообщение клиенту php отправляет это сообщение comet серверу а тот в свою очередь передаёт это сообщение в браузер. Сообщения доходят почти мгновенно благодаря тому что комет сервер держит постоянно открытое соединение со всеми пользователями с вашего сайта.

Я лично рекомендую WebSockets как более новый метод который имеет ряд преимуществ.
1. Не требуется рвать соединение при доставки сообщения.
2. как следствие первого это то что вы можете одному пользователю в секунду доставлять больше сообщений.
3. Так же вы можете сами отправлять серверу сообщения по WebSockets то есть общение двустороннее.
Из недостатков - поддержка браузерами caniuse.com/#search=websockets (на данный момент это 84.5%)

Есть готовые решения Dklab Realplexor или Ratchet, а есть ещё вариант аренды комет сервера по принципу SaaS, что гораздо проще а на не больших проектах ещё и дешевле.
[Ru] comet-server.ru
[En] pusher.com
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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