2009-06-30 3 views
2

Я прочитал, что XMLHttpRequests лучше всего подходит для контента, частота обновления которого составляет 30 секунд и более. В той же статье упоминалось, что веб-приложения, которые нуждаются в более быстрой частоте, должны использовать сокет. Я не могу найти статью/книгу, в которой упоминается это (если кто-нибудь может размещать ссылки на статьи, которые обсуждают это, я был бы признателен). Ваш опыт работы с XMLHttpRequest и сокетами поддерживает вышеупомянутое утверждение или нет? Какие другие типы соединений между браузером и сервером следует учитывать?XMLHttpRequest vs Socket vs some other approach

ответ

3

Javascript не имеет возможности выполнять настоящую связь сокетов. Если вы заблокированы только для Javascript (без помощника SWF, ActiveX или какой-либо другой технологии), то ваш лучший выбор - XMLHttpRequest.

XMLHttpRequest не подходит для более частого обновления (теоретически, по крайней мере) из-за накладных расходов, связанных с разбором и формированием запроса и анализом результатов. Теоретически соединение Socket даст вам канал обратно на сервер, не пройдя все запросы.

Недостаток использования сокетов (помимо того, что Javascript не поддерживает их напрямую) заключается в том, что если вы используете специальный формат сериализации для данных, возвращающихся через соединение Socket, только код, который вы пишете, может использовать результаты (если вы не публикуете свой формат Serialization). Это не может быть проблемой для вас, но для кого-то это остановит всю работу ...

Вот небольшой демо-сокетов в Javascript с SWF Helper:

SocketJS

2

Существует еще ответ чем частота обновления. Также важно количество одновременных пользователей, так как использование Comet (это ключевое слово, которое приведет вас к большему количеству статей) использует соединения с сервером и может также не масштабироваться. Современные веб-серверы лучше обрабатывают больше подключений, но вам нужно проверить это в своей собственной среде.

Для меня даже 30 секунд слишком часто используется AJAX. Мой лимит, вероятно, примерно на одну минуту.

-1

Настоящая статья теперь должна считаться датой. У современных браузеров нет проблем с обработкой запросов до 1 секунды. Посмотрите, как быстро Google может угадать ваш поиск. Простой вызов XMLHttpRequest. Без вспышки. Нет ActiveX.