Сколько нужно платить AJAX Push, чтобы сделать веб-страницы более интерактивными? - PullRequest
0 голосов
/ 22 мая 2011

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

В последнее время я очень заинтересован в том, чтобы познакомиться с AJAX push и всеми его основными идеями. Я знаю, что технология push AJAX делает веб-страницы более интерактивными на стороне сервера, но за всеми плавно интерактивными движениями, очевидно, стоит некоторая «тяжелая работа» за кулисами, как в реализации, так и в том, как она работает с ресурсами.

Итак, вкратце, давайте забудем о реализации, мне нужен кто-то, кто объяснит мне, как работает AJAX push в отношении подключения к серверу, как (или сколько) ресурсов используется, или некоторые другие аспекты, которые следует учитывать при реализации этого метода.

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

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Я действительно не вижу, как "Ajax Push" вещь. Я знаю длинные опросы и думаю, что это то же самое.

Недостатком длинных опросов является то, что на вашем сервере может быть открыто много незавершенных запросов. Не сокеты, а актуальные запросы. Идея длительного опроса:

  1. Клиент отправляет запрос на сервер
  2. Сервер не отвечает (не завершает запрос)
  3. Сервер ждет, пока есть что сказать (Клиенту)
  4. Когда сервер получает новую информацию (от другого клиента или где-то еще), он печатает эту информацию всем ожидающим клиентам (может быть много!) И завершает запрос
  5. Клиент получает эту информацию и немедленно делает другой запрос (с новой отметкой времени и / или хэшем и т. Д.)

Недостаток: если все 500 клиентов выполняют шаг 1 и ничего больше, на сервере открыто 500 запросов, и он просто ожидает отправки некоторой информации и завершения этих запросов. Большинство серверов не допускают 500 открытых HTTP-запросов ...

Если у вас есть время, вы можете прочитать этот PDF-файл. (Хотя это долго.)

PS. Положительным моментом является то, что ваш сервер получает меньше HTTP-запросов (что означает меньшие издержки HTTP), и эта информация отправляется только тогда, когда есть что отправить (что также означает меньшие накладные расходы).

редактировать
Пример длинного опроса: http://hotblocks.nl/tests/ajax/poller/ с источником http://hotblocks.nl/tests/ajax/poller/callback.php?source

Объяснение
Преимущество: меньше HTTP-издержек, потому что меньше HTTP-запросов. Допустим, количество пользователей является статическим (оно есть) и составляет 500.

При длительном опросе: 500 пользователей делают 1 запрос, а затем ждут ............ и затем что-то меняется, и все 500 запросов завершаются (сервером), а затем "возобновляются" (новый HTTP) запрос) от клиента.
Наверх: меньше запросов (1 на пользователя на новую информацию).
Недостаток: более длинные запросы (очень длинный холостой ход, что означает больше открытых запросов).

Без длительного опроса: 500 пользователей делают запрос, сервер отвечает «ничего нового», поэтому 500 пользователей делают новый запрос спустя 500 мс / 1 с / 5 с, а сервер снова отвечает «ничего нового» и т. Д., И т. Д., Пока сервер не получит актуальные новости, а затем ответ содержит что-то. И даже тогда клиенты сразу делают новый запрос.
Наверх: быстрые короткие запросы к серверу, которые можно быстро завершить.
Недостаток: многие, многие, многие из этих запросов к серверу (и каждый HTTP-запрос => HTTP-заголовки => MUCH издержки).

пример объяснения
Пример очень (слишком) прост:

  1. Вы (Клиент) делаете запрос на Сервер для получения текущей информации
  2. Сервер предоставляет вам эту информацию и отметку времени
  3. Клиент получает информацию, использует ее (показывает сообщение) и делает новый запрос с отметкой времени
  4. Сервер сравнивает отметку времени клиента с отметкой времени сервера (в данном случае filemtime файла)
  5. Если изменение файла новее, чем отметка времени клиента: напечатать новое содержимое файла
  6. Клиент получает эту информацию и новую метку времени Сервера
  7. Шаг 3 снова и т. Д.

Время между шагами 4 и 5 может быть очень большим. В активном чате этого не будет. (Новая информация добавляется постоянно.) В многопользовательской игре это может быть (секунды, а не минуты).

0 голосов
/ 23 мая 2011

Это может помочь вам начать:

http://www.icefaces.org/main/ajax-java/ajaxpush.iface

Однако эта ссылка намного лучше в форме COMIC BOOK =))

http://www.ape -project.org / комикс / 1 / Глава-I-синфазного давайте-s-push.html

По сути, он очень похож на AJAX, теперь только сервер может общаться с клиентами, а не только с клиентскими запросами.

...