Впервые я добавляю следующий фрагмент кода в файл имя_проекта \ settings.py.
`INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#Django REST Framework
'rest_framework',
#Games application
'games.apps.GamesConfig',
]`
После сохранения, при запуске следующего кода я получил ошибку.
`python manage.py makemigrations games`
Затем я проверяю файл settings.py и понимаю, что есть два INSTALLED_APPS, а во втором нет следующих. Когда я добавил их, код работал.
`#Django REST Framework
'rest_framework',
#Games application
'games.apps.GamesConfig',`
Точно не знаю, какую технологию использует Gmail, но концепция состоит в том, чтобы открыть канал - используя обратный AJAX, методы на основе комет или звездочек.
Думайте об этом как о клиенте, запрашивающем данные у сервера, но сервер не возвращается в течение одной минуты, если у него нет новой почты. Используя эту технику, клиент может почти показать результаты в реальном времени, и ему не нужно опрашивать каждые 2 секунды. Имеет смысл?
Вы имеете право с простым ответом. Google Mail проверяет новые сообщения на сервере через AJAX.
Это должен быть какой-то прослушиватель ajax, который получает информацию каждые X секунд.
Я уже установил что-то подобное для одного из своих проектов. То, что я делал, - это вызов функции, которая возвращала истину или ложь. Истина, если страницу необходимо обновить, иначе - ложь. Затем, если у вас есть обновление, вы делаете еще один вызов, чтобы получить фактическое обновление. Таким образом, вам не нужно обновлять все каждый раз ... но это все равно интенсивно на сервере, если у вас много пользователей.
Другими словами, как сказал хаос, он опрашивает сервер.
Gmail, по сути, опрашивает сервер на предмет обновлений. Но не так часто, как каждые две секунды. Это было бы безумием. Небольшое тестирование с использованием данных о вмешательстве показывает, что это может выглядеть примерно каждые 20 секунд, хотя кажется, что происходит несколько событий, которые немного сбивают его с толку.
Что касается вашего редактирования, я полагаю, что у них может быть метка времени последней активности на отслеживание учетных записей в их базе данных, при этом запрос на опрос клиента извлекает это через Ajax и сравнивает с его последней синхронизацией, чтобы определить, нужно ли ему выполнять полное обновление.