2009-06-15 6 views
1

Я пытаюсь получить лучшую логику за этим, прежде чем начинать писать код.Rails: Как обновить страницу с новыми сообщениями? через Ajax? Jquery?

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

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

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

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

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

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

Идеи?

ответ

1

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

+0

Это интересно Джон, я намеренно поставил временную метку на записи, чтобы я мог найти все «новые сообщения». (Сообщения с меткой времени больше последнего вызова «обновления»). Однако, как бы я хотел добавить уникальную идентификацию, если каждый идентификатор будет другим? (Поскольку каждое «новое» сообщение может иметь другую временную метку). Не уверен, что это имеет смысл ... –

+0

, а затем обновляется страница ... им думается, может быть, для этого будет возможно периодически_call_remote. Просто задумываясь здесь ... –

+0

Ага! просто перечитал мой комментарий, сначала не последовал за вами, но я думаю, что у меня есть идея. Я добавлю временную метку ко всем идентификаторам * новых * сообщений, а затем выделим их таким образом. Посмотрим, если это сработает. –

0

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

Смежные вопросы