Вы можете асинхронно уведомить веб-браузер? - PullRequest
2 голосов
/ 11 марта 2009

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

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

Ответы [ 8 ]

3 голосов
/ 11 марта 2009

Ознакомьтесь с техникой "кометы" , когда вы в основном держите соединение открытым для сервера, который отправляет данные обратно на вас.

2 голосов
/ 11 марта 2009

Комета это то, что вы ищете. Есть несколько библиотек js и http-серверов, которые облегчают использование. Он основан на идее держать соединения открытыми с определенным запросом и передавать их обратно в браузер, когда серверу есть, что транслировать. Вам следует помнить о том факте, что браузеры обычно могут иметь очень ограниченное количество соединений, открытых к одному домену (типично, я думаю) Если вы хотите попробовать это, взгляните на:

dojo cometd

js io

1012 * вращался *

apache tomcat advanced io

Если вы в Erlang, проверьте это:

http://yoan.dosimple.ch/blog/2008/05/15/

2 голосов
/ 11 марта 2009

Что ж, вы можете попробовать включить флаг "ignore-user-abort" и убедиться, что скрипт не завершает (пока условие) sleep ()). После того, как вы отобразили информацию, которую нужно передать, сбросьте () текст в браузер.

Но я бы не рекомендовал это решение. Вместо этого: используйте Ajax и используйте схему опроса. Большинство современных фреймворков поддерживают его «из коробки».

1 голос
/ 11 марта 2009

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

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

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

0 голосов
/ 06 августа 2009

Также проверьте juggernaut для RubyOnRails здесь

0 голосов
/ 11 марта 2009

В прошлом я нашел хорошую статью о потоковой передаче данных в HTML:

http://ajaxpatterns.org/HTTP_Streaming

Может быть полезно:)

0 голосов
/ 11 марта 2009

Существует События, отправленные сервером из спецификации WHATWG Web Applications 1.0, которая была добавлена ​​в Opera 9. Кажется, что Mozilla / Firefox работает .

0 голосов
/ 11 марта 2009

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

Вот другая статья по теме.

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