Минимальное время между последующими вызовами AJAX - PullRequest
2 голосов
/ 30 октября 2008

В приложениях AJAX, которым необходимо регулярно опрашивать сервер (например, в приложениях чата), какое минимальное время между двумя вызовами рекомендуется, чтобы обновление выполнялось как можно быстрее? Какие времена считаются свиньями для сервера и клиента?

Ответы [ 4 ]

2 голосов
/ 31 октября 2008

У нас есть другое решение для опроса AJAX в нашем чате:

Запрос отправляется на сервер и опрашивает данные на стороне сервера в цикле с очень короткими интервалами задержки (например, 0,5 с). Данные получаются, запрос возвращается. Затем следующий запрос немедленно отправляется на сервер. Тайм-аут всех запросов установлен примерно на 60 секунд, когда он истекает без получения данных, следующий запрос заменяет его.

2 голосов
/ 30 октября 2008

Ответ на этот вопрос очень сильно зависит от:

  1. Сколько данных отправлено в каждом опросе
  2. Сколько пользователей вы будете иметь онлайн одновременно
  3. Сколько пропускной способности ваш сервер может обрабатывать
  4. Насколько «свежими» должны быть данные на вашем клиенте

Не зная ни одной из этих особенностей вашего приложения, будет трудно дать хорошую рекомендацию. Вы изучили метод, при котором клиент подключается к серверу, а сервер удерживает соединение открытым, пока не будут доступны данные? Затем сервер доставляет данные, и клиент немедленно подключается и снова ждет. Это может быть сложно начать работать, но вы можете таким образом максимизировать как эффективность пропускной способности, так и скорость отклика.

1 голос
/ 30 октября 2008

Реального ограничения нет, кроме количества одновременных пользователей, которое вы ожидаете обременять нагрузкой на сервер. Вероятно, вы можете динамически настроить это на стороне клиента, отслеживая среднее время ответа.

Чтобы сделать это правильно, при приличной нагрузке, вы делаете ставку, используя Comet .

1 голос
/ 30 октября 2008

Это зависит от приложения, но для чата вы, вероятно, хотите опросить довольно часто - я бы сказал, от 1 до 4 секунд. Что вы можете сделать, это динамически изменить интервал опроса, чтобы уменьшить нагрузку на сервер - если никто не сказал ничего в течение минуты, увеличьте до 10 секунд ... через 5 минут увеличьте до 30 секунд - такие вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...