Rails: Как я могу обновить страницу новыми сообщениями? через Ajax? Jquery? - PullRequest
1 голос
/ 15 июня 2009

Я пытаюсь получить лучшую логику, прежде чем начать писать код.

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

Когда пользователь приходит в свой почтовый ящик, ему представляются все его текущие сообщения. Это легко для меня:

@user = User.find(params[:id])
@user.messages

И я показываю текущие сообщения пользователя на странице.

Однако что если сообщение new приходит, когда пользователь находится на этой странице (или любой другой странице), как я могу обновить страницу с новым сообщением, не требуя полного обновления страницы. Я знаю, что это можно сделать через ajax (periodically_call_remote?). Но я бы хотел только выделять (исчезать / мигать) только НОВОЕ сообщение, которое приходит.

Пытаюсь обернуть это вокруг меня. Мое текущее решение состоит в том, чтобы использовать частичную часть для входящих сообщений, которая вызывает другую частичную часть входящих сообщений. Но как я могу периодически обновлять страницу только "НОВЫМИ" сообщениями? Скажем, проверять каждые 2 минуты или около того.

Идеи

Ответы [ 2 ]

1 голос
/ 15 июня 2009

Если ваши сообщения имеют временную метку, вы можете использовать ее как часть идентификатора для нового сообщения (HTML-идентификаторы не должны начинаться с цифры). Это однозначно идентифицирует это сообщение на странице и позволит выделить его с помощью JavaScript и т. Д.

0 голосов
/ 16 июня 2009

Почему бы вам не использовать периодического наблюдателя? (Тот, который опрашивает ваше приложение каждые X минут)

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