2012-02-12 5 views
1

Я хочу создать систему торгов, где пользователь может видеть текущую цену товаров. И если какой-либо другой пользователь в любом другом месте ставит перед собой ставку, мне следует автоматически обновлять ставку в моем браузере.auto update bids - PHP/Ajax

Я читал об автоматических функциях JS + Ajax, но даже если я разместил 5-секундный таймер для автоматического обновления содержимого в браузере пользователя, не наложит ли он лишнюю нагрузку на сервер, сделав ajax-вызов каждые 5 секунд? Его система ставок, так что пользователь будет обновлять ставки в течение 1-2 секунд, поэтому, если я положу вызов ajax для автоматического обновления на каждые 1-2 секунды, это наложит большую нагрузку на сервер.

Так что мне интересно, есть ли лучший способ справиться с этим типом вещей? как сделать твиттер/facebook обновлять пользовательские каналы?

+1

Взгляните на этот ответ - http://stackoverflow.com/a/7132828/295508 Напоминания о методах сервера или какой-либо системе веб-сокетов должны работать для вас – JohnP

ответ

3

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

Вы можете взглянуть и попытаться long polling. Длительный опрос метода, когда вы «нажимаете» данные с сервера на браузер в ответ на HTTP-запрос браузера. Это обычное HTTP-соединение. Это может уменьшить количество запросов, отправленных с пользователей на сервер, однако у вас все еще будет много открытых и активных соединений между вашими пользователями и вашим сервером.

1

Вы хотите посмотреть на длительный опрос. По сути, это то, как он работает

  • На сервере вам нужно какое-то механизм событий (не probem с PHP)
  • Клиента (браузер) начинается запрос AJAX ссылкой пункта Тендерного
  • проверки сервера для изменений в заявке, если есть, возвращает запрос
  • Если нет, он ждет некоторое время (минутный диапазон), ожидая события, связанного с этой заявкой
  • Если такое событие происходит, сервер возвращает запрос с информацией, если нет, он возвращает запрос с информацией «без предложения»
1

Вы могли бы уйти с моделью потокового ...

Каждый клиент JS подключается к серверу один раз и сохраняет conneciton открытым. По мере поступления новых событий на сервер они транслируются во все открытые соединения в режиме реального времени.

Это похоже на механизм, используемый twitter для трансляции твитов.

+0

Можете ли вы показать мне какой-либо пример в любом месте? любой образец сценария? –

+0

Посмотрите на это http://ajaxpatterns.org/HTTP_Streaming#Solution – Basic