Я пытаюсь создать веб-сайт, который автоматически показывает сообщение, когда он был отправлен другим пользователем, или пользователь получает уведомление, когда сообщение было отправлено ему, в основном что-то, что работает как Facebook. Без необходимости перезагрузки страницы или нажатия F5.
Я много лет работаю с Javascript и PHP, и единственный способ сохранить обновленную страницу, насколько я знаю, – это постоянно использовать запросы AJAX.
Это пример (проверка сообщения из базы данных):
setInterval(function() { $ajax({ url: "http://myweb.com/checkmessage.php", type: "POST", data: {value: userID}, dataType: "json", success: function(result){ //If true do something and update message inbox } }); }, 500);
Это в основном отправляет запросы каждые 0,5 секунды в мой PHP-файл, где у меня есть доступ к моей базе данных, и я проверяю наличие новых сообщений и возвращаю их. Благодаря этому коду я могу получать сообщения в режиме реального времени, не обновляя свой сайт.
Но, честно говоря, с точки зрения производительности очень плохо, что сотни запросов AJAX отправляются каждые 0,5 секунды одновременно, это замедляет работу сайта.
Вот почему я спрашиваю здесь, есть ли лучший способ реализовать это, я проверял Facebook и то, как это было реализовано чистой тайной для меня. Я все еще не знаю, как они это делают, чтобы иметь такие массовые обновления на странице и всего несколько звонков (вы можете сами проверить, открываете ли вы facebook, пока он загрузится, затем откройте инструменты разработчика Google, перейдите в сеть и посмотрите ее на твои глаза!).