Аякс простой вопрос - PullRequest
       6

Аякс простой вопрос

4 голосов
/ 15 декабря 2010

У меня очень простой вопрос о ajax. Если бы я хотел обновить определенную область моего сайта, я бы предложил ajax.

Но в любом случае, вместо того, чтобы периодически проверять наличие изменений на сервере при помощи javascript, сервер отправлял данные, когда происходило данное событие?

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

Заранее спасибо

Ответы [ 6 ]

1 голос
/ 15 декабря 2010

Да, это можно сделать. Это называется «push» или «push streaming».

Вот один сайт, который предлагает такую ​​возможность: InstantPush . И краткая цитата с их домашней страницы:

"InstantPush используется для создания веб-страниц и мобильные телефоны начинают жить. Они будут мгновенно обновляться в режиме реального времени, когда изменение происходит на стороне сервера. Стандартные веб-коммуникации делают Обновления проходят межсетевые экраны и прокси. Без каких-либо модулей у клиента сторона!

InstantPush используется с 2001 года, до того, как «Аякс был изобретен». это вероятно, первый Ajax Push Framework.

InstantPush является лидером на рынке Северная Европа. "

Вот еще одна компания, предлагающая эту технологию: LightStreamer . И цитата с их домашней страницы:

"Lightstreamer - это масштабируемый и надежный сервер для передачи активных данных в многофункциональные интернет-приложения

На основе кометы и сети в реальном времени парадигмы, потоковые данные в реальном времени на любой веб-браузер и клиент приложение. HTML, HTML5, AJAX, Flex, Silverlight, Java, .NET, iOS, Android, и приложения BlackBerry, может легко получать данные в реальном времени от Lightstreamer Server.

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

1 голос
/ 15 декабря 2010

Этого нельзя сделать, поскольку протокол http работает, отправляя запрос и получая ответ от сервера, следовательно, сервер не может ответить без получения запроса.

0 голосов
/ 15 декабря 2010

Я думаю, что websockets это путь, но пока не поддерживается для всех браузеров.

Я использовал их с рубином и хромом и было довольно легко.

0 голосов
/ 15 декабря 2010

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

0 голосов
/ 15 декабря 2010

это действительно сложный вопрос, когда сервер передает / передает данные клиентам без запроса.HTTP не имеет состояния и даже если браузер является зарегистрированным клиентом, он все равно должен запрашивать либо через код, либо через некоторые теги, такие как метаобновление.Новые, но все еще не очень стабильные опции - это Comet или websockets.

Ответ - это Comet, а не websockets.Да, это возможно.Другой способ - использовать плагин для браузера.

Это страница, за исключением wiki на Технология Push

* Apple Push Notification Service
* BOSH
* Comet
* Client–server model
* File transfer
* Pull technology
* Push Access Protocol
* Push e-mail
* Reverse Ajax
* Streaming media
* WebSockets
0 голосов
/ 15 декабря 2010

Это невозможно при использовании традиционного HTTP. Однако вы можете использовать long polling или одного из его братьев и сестер для имитации поведения нажатия.

...