在我开始编写代码之前,我正试图在这背后获得一些更好的逻辑。
我有一个通过后台进程收集新邮件的模型。 (因此,使用任何新消息,数据库每2-3分钟更新一次)。
当用户进入收件箱时,会向他们显示所有当前消息。这对我来说很容易:
@user = User.find(params[:id])
@user.messages
我在页面上显示用户的当前消息。
但是,如果当用户在该页面(或任何其他页面)上时出现 new 消息,如何在不需要整页刷新的情况下更新具有新消息的页面。我知道这可以通过ajax(periodic_call_remote?)来完成。但是我只想只突出显示(淡入/淡化)来自的新消息。
试图将我的前提包裹起来。我目前的解决方案是使用部分收件箱,它调用另一部分收件箱邮件。但是,如何定期仅使用“新”消息更新页面?比如,每2分钟检查一次。
想法?
答案 0 :(得分:1)
如果您的消息有时间戳,那么您可以将其用作新消息的ID的一部分(HTML ID不应以数字开头)。这将在页面上唯一标识该消息,并允许您使用JavaScript等突出显示它。
答案 1 :(得分:0)
为什么不使用定期观察者? (每隔X分钟轮询一次你的应用程序)