Javascript.RU

Частые опросы (polling)

Update: Более новый материал по этой теме находится по адресу https://learn.javascript.ru/xhr-longpoll.

Первое решение, которое приходит в голову для получения событий с сервера - это "поллинг" (polling), т.е периодический опрос сервера стандартными пакетами: "я тут, изменилось ли что-нибудь?"

В ответ сервер во-первых помечает у себя, что клиент онлайн, а во-вторых посылает датаграмму, в которой в специальном формате содержится весь пакет событий, накопившихся к данному моменту.

У этого способа есть одна большая проблема, а именно - большие задержки между созданием и получением данных. Сервер отсылает их не тогда, когда они появились, а когда настанет время очередного запроса.

Задержка = время между опросами + установление соединения + передача данных.

Другой минус - лишний входящий трафик на сервер. При каждом запросе браузер передает множество заголовков, причем заголовки
всегда идут в несжатом виде. Для некоторых приложений входящий трафик заголовков может в 10 и более раз превосходить исходящий трафик реальных данных.

  • Задержки между событием и уведомлением
  • Входящий трафик на сервер
  • Простота реализации

В качестве транспорта можно использовать что угодно - от XMLHTTPRequest до тегов script. Пример не рассматриваем, и так все понятно


Автор: Гость, дата: 2 сентября, 2008 - 12:19
#permalink

Что же делать? Как сделать так чтобы при возникновения какого-либо события на сервере (например обновление данных) клиент узнал об этом и получил эти данные, не «пиная» постоянно сервер?


Автор: Гость (не зарегистрирован), дата: 19 февраля, 2018 - 17:14
#permalink

WebSocket


Автор: bar-boss, дата: 4 сентября, 2008 - 10:07
#permalink

Никак, нужно спрашивать, обновились ли данные или нет.


Автор: Гость (не зарегистрирован), дата: 19 февраля, 2018 - 17:14
#permalink

WebSocket


Автор: Coder (не зарегистрирован), дата: 2 октября, 2008 - 23:34
#permalink

Автор: Илья Кантор, дата: 4 октября, 2008 - 17:28
#permalink

В этом способе скрипт узнает именно через периодический запрос к серверу. Другие способы описаны в этом разделе


Автор: maximus (не зарегистрирован), дата: 4 декабря, 2008 - 20:46
#permalink

спасибо за статьи по push, сейчас разрабатываю тему


Автор: Falcon, дата: 18 ноября, 2009 - 01:08
#permalink

тока нагрузка всё равно неслабая на каналы.
так что используем HTML5 sockets


Автор: skeef, дата: 13 апреля, 2011 - 17:13
#permalink

Да сложного в принципе особо ничего нет.
Вижу аж три решения.
1 - старт скрипта по крону
2 - при любом "движении" любого пользователя по сайту (получаем работу PHP-скрипта) заставляем этот скрипт выполнять нужную проверку и флагами по времени последнего обновления отсеиваем лишнее срабатывание скрипта. Если пользователей достаточное количество, то этого способа вполне достаточно и нагрузка на сервер не очень боьшая, потому как все равно обслуживается какой-то пользователь.
3 - а что мешает событию, которое произвело какие-то изменения уведомлять об этом?


Автор: Гость (не зарегистрирован), дата: 17 мая, 2011 - 18:36
#permalink

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


Автор: imsha, дата: 5 марта, 2013 - 04:13
#permalink

Посмотрите в сторону socket.io, тут как раз открывается "туннель" на все время сессии клиента.


Автор: спасибо (не зарегистрирован), дата: 1 мая, 2019 - 16:44
#permalink

Обычно, когда функция возвращает Deferred, т.е "обещание результата в некоторый момент", программист затем цепляет к нему обработчики результата, которые будут вызваны в той же последовательности, через addCallback/addErrback/granny 2.0


Автор: makekola (не зарегистрирован), дата: 3 января, 2020 - 10:08
#permalink

Your feedback helps me a lot, A very meaningful event, I hope everything will go well
temple run


Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 03:10
#permalink

Автор: Louise Berglund (не зарегистрирован), дата: 16 мая, 2022 - 20:39
#permalink

Trans Netflix e chill está bem de vez em quando, mas demasiadas coisas podem parecer suspeitas. As mulheres trans precisam de saber que os seus homens não têm vergonha de serem vistos com elas em público. Os homens precisam de continuar a abrir as portas, a apanhar a conta e a fazer aquela coisa estranha onde atiramos os nossos casacos em poças de água no chão para as mulheres dançarem sapateado. Quando os homens vão para a rua podem ter algumas interacções sociais não tão positivas com estranhos, mas antes de se descontrolarem e tentarem defender a honra de uma senhora, devem verificar primeiro a sua reacção. Nem sempre é boa ideia levar um caso ao ponto de envergonhar publicamente o seu par, mesmo que a sua honra tenha sido manchada.


Автор: anniegibson (не зарегистрирован), дата: 22 мая, 2022 - 11:36
#permalink

Мне нравится твой пост. Кому-нибудь нравятся приложения netflix apk modcombo , как мне? Лучшее приложение для просмотра фильмов.


Автор: Kerstin Dekker (не зарегистрирован), дата: 16 июня, 2022 - 13:34
#permalink

Sex Düsseldorf ist die beste Plattform, um eine Cougar-Frau in meiner Nähe zu finden. Sobald Sie die Funktion zur Standortverfolgung aktivieren, wird die Website Sie nur mit Menschen in Ihrer Nähe zusammenbringen.


Автор: Jose Bednarikova (не зарегистрирован), дата: 8 июля, 2022 - 20:38
#permalink

Sexnamka Netflix og chilling er greit en gang i blant, men for mye av det kan være mistenkelig. Transkvinner trenger å vite at mannen deres ikke er flau over å bli sett med dem offentlig. Menn bør fortsatt åpne dører, betale regningen og gjøre den rare tingen der vi kaster frakkene våre i vannpytter på gulvet for kvinner å banke på.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
5 + 15 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum