Как веб-сайт обновляется для получения новых данных?

В настоящее время я разрабатываю веб-сайт для приложения чата (все на стороне сервера - это Django).

Одна из проблем, с которыми я столкнулся, заключалась в том, как поддерживать веб-сайт (после того, как пользователь войдет в систему и все отобразится) обновленным, если пользователю нужно получить что-то новое (новое сообщение, уведомления и т. д.).

Решение, с которым я пришел, состояло в том, чтобы сначала создать URL-адрес для отправки запроса на получение, а ответом был бы список невидимых уведомлений для пользователя. Затем в HTML код JavaScript для отправки запроса на этот URL и получения невидимых уведомлений.

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

Теперь это работает нормально, но я не уверен, как это должно быть сделано, так как я бомбардирую запросами свой сервер (в настоящее время все в разработке и всего пара пользователей, в то время ничего не взорвалось) и клиент постоянно отправляет запрос. Это то, как другие сети (например, Facebook) обновляются в случае появления нового уведомления без необходимости ручной перезагрузки страницы пользователем?

Заранее спасибо!


person Sebastian ScripWet    schedule 03.07.2018    source источник
comment
Вы не должны использовать запросы Ajax для извлечения данных с сервера. Поскольку у вас приложение для чата, лучше использовать сокеты. У Django есть каналы для общения в реальном времени.   -  person Gary Mendonca    schedule 03.07.2018
comment
Пожалуйста, прочитайте stackoverflow.com/questions/34730334/ и stackoverflow.com/questions /33687298/   -  person Luis felipe De jesus Munoz    schedule 03.07.2018
comment
Посмотрите: Firebase, Socket.io и Web Sockets   -  person Alex    schedule 03.07.2018
comment
Вы можете использовать AJAX, Sockets, каналы Django и т. д. Я разработал полное приложение для чата с использованием AJAX. Надеюсь, поможет!   -  person Pujan Mehta    schedule 04.07.2018