Используйте Pusher или аналогичные библиотеки для автоматического обновления вида из базы данных - PullRequest
1 голос
/ 23 февраля 2012

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

Я вызываю функции AJAX для сохранения / обновления данных.

С этимЯ могу использовать опрос, при котором клиент будет постоянно спрашивать сервер, есть ли какие-либо обновления.Но это будет неэффективно.

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

Но я не нашел ничего о том, как я могу использовать эти библиотеки дляавтоматическое обновление таблицы HTML.

Будем благодарны за любые предложения.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Если вас не интересует опрос, то, вероятно, вы ищете паб / субсервер.

Я бы предложил проверить Джаггернаут . Это позволяет клиентским браузерам устанавливать длительные соединения с вашим сервером, которые не опрашивают: вместо этого, когда ваш сервер отправляет push-запрос, они отвечают, отображая JavaScript из этого push-запроса непосредственно на страницу клиента.

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

1 голос
/ 23 февраля 2012

Я не использую ничего из этого, но быстрый гугл для pusher.js кажется, что это достаточно просто.На стороне браузера вы определяете обработчик событий.

На стороне сервера вы можете инициировать события и вместе с событием отправлять некоторые данные (например, созданную запись).Это может быть либо строка, либо хеш.Хеш будет преобразован в JSON.

Независимо от того, какой тип данных вы отправляете, вы можете использовать любую библиотеку, такую ​​как jquery или аналогичную, для создания новой строки в таблице (или генерирования любого HTML-кода, который вам нужен).В контексте Rails использование рендера для генерации html-строки вместо JSON позволит вам использовать партиалы и шаблоны.Опять же, их легко вставить в DOM с помощью jquery.

Для Ruby on Rails есть даже драгоценный камень, который объединяет функциональность толкателя.См. учебник толкателя

Полагаю, другие библиотеки, такие как клевета, будут работать более или менее так же.

...