Леонид Селезнёв
Знаток
(404),
на голосовании
5 месяцев назад
Я написал чат на Python (фреймворк Django), но я не знаю как можно реализовать возможность постоянно подгружать новые сообщения. Желаемый способ решения - JavaScript, я попробовал сделать setTimeout(function(){ location.reload(); }, 1); но проблема в том, что при таком способе данные из text input который есть на странице сбрасываются, как можно еще решить задачу? добавить EventListener?
Для реализации функциональности подгрузки новых сообщений в реальном времени без сброса данных в input, лучше всего использовать AJAX-запросы в JavaScript. Таким образом, вы сможете принимать новые сообщения без перезагрузки страницы.
### Основные шаги: 1. Создайте URL-адрес обработчика на стороне сервера, который будет возвращать новые сообщения. 2. Создайте функцию на JavaScript для периодического выполнения AJAX-запросов. 3. Обновите DOM элемент, отвечающий за отображение сообщений, новым содержимым, полученным из сервера.
### Шаг 1: Создание URL-адреса обработчика на стороне сервера
В вашем Django приложении добавьте новое представление, которое будет возвращать новые сообщения в формате JSON:
#### В `views.py`:
from django.http import JsonResponse from .models import Message
setTimeout(function(){
location.reload();
}, 1);
но проблема в том, что при таком способе данные из text input который есть на странице сбрасываются, как можно еще решить задачу? добавить EventListener?