Загрузка данных через AJAX?

Доброго времени суток, коллеги и другие хабровчане!

Вот возникла у меня задача, которую я решал лет 5 назад. В наше время решение этой задачи находится почти повсюду, весь Интернет пронизан этой используемой технологией как далёкая-далёкая галактика Силой.

Речь идет об AJAX.

Так вот, 5 лет назад стояла у меня задача динамической загрузки данных (для чата). Разумеется я использовал AJAX. Каждые 5 секунд серверу посылался запрос, в ответ выдавался XML либо удобный для парсера средствами JS текстовый документ (не JSON, я тогда и не слыхивал о нем).

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

Подскажите мне, уважаемые Веб-разработчики в теме, каким образом сейчас реализуется динамическая подгрузка данных с сервера? Также по таймауту? Хороший пример реализации, да-да, всеми «любимый» ВК.

ps: в работе использую jQuery. Что будет загружаться: XML, JSON(P) либо целый кусок html (частичное представление) — не важно.

pps: подкиньте идей, js-код ВК посмотреть конечно могу, но вдруг он весь обфусцированный
  • Вопрос задан
  • 6297 просмотров
Пригласить эксперта
Ответы на вопрос 9
@joger
ключевое слово: websockets
Ответ написан
Комментировать
Igogo2012
@Igogo2012
В данный момент, есть более новые технологи, например: websocket и Long polling.
Websocket однозначно будет работать быстрее и как по мне даже интереснее чем простой ajax с таймаутами.
Ответ написан
Комментировать
EugeneOZ
@EugeneOZ
signalr.net/ — ещё вот Вам ссылка. Если в браузере есть поддержка websockets, то работает через них, иначе через long polling.
Ответ написан
Комментировать
B7W
@B7W
Если у вас чат — websockets подойдет лучше всего.
Вот собственно хорошая обзорная статья
www.insight-it.ru/tekhnologii/soobshheniya/postoyannoe-soedinenie-mezhdu-brauzerom-i-serverom/

Вот простая реализация, можно еще найти с десяток других посложнее.
habrahabr.ru/post/124119/
Ответ написан
dizballanze
@dizballanze
Software developer at Yandex
Реализация на Node.js — socket.io/
Здесь в зависимости от поддерживаемых клиентом возможностей происходит graceful degradation, т.е. выбирается наиболее эффективный из доступных транспортов.
На данный момент поддерживаются следующие транспорты:
— websockets
— flash socket
— ajax long polling
— AJAX multipart streaming
— бесконечный iframe
— ajax polling
Ответ написан
Комментировать
B7W
@B7W
---
Ответ написан
Комментировать
Zerstoren
@Zerstoren
websocket, я уже видел, что о не уже рассказали коментами выше, но хочу добавить.

1) Есть вебсокеты и их flash замена, что делает технологию вебсокетов кроссбраузерной. Костылями, но куда-же без них.
2) Преимущество вебсокетов в том, что сервер может отправить сообщение, не только клиент.
3) Куча готовых инструментов, особенно под node.js.

Если ваше приложение Just for fun, покопайте веб сокеты.

Я реализовываю игрушку, где общение между клиентом и сервером идет по вебсокетам. Очень доволен новой технологией. Даже при медленном инете, вебсокеты показывают хорошие результаты.
Ответ написан
Тут всё зависит от того какие ЯП Вы планируете использовать. Перспективные технологии websocket и Long polling не на всех ЯП работают корректно, существует множество явных недостатков. Если хотите работать с этими технологиями, то сразу проверяйте свой ЯП на корректность работы.

Если у Вас нет требования к «моментальному» обновлению, лучше использовать старый добрый AJAX, так гемороя будет меньше. jQuery прекрасно обеспечивает все механизмы для работы с Ajax.
Ответ написан
Комментировать
Piterski
@Piterski
Вот вам пару ссылок по серверной части long-polling:
dklab.ru/lib/dklab_realplexor/
goo.gl/ZHLfQ
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы