csdnceshi62 2013-12-12 19:29 采纳率: 100%
浏览 33

订购轮询请求

I am trying to follow rails casts episode #228 on polling for changes. I am essentially following the screencast word for word, except that I am using it for notifications instead of comments. The only difference is that every time he uses the word 'comment', i use the word 'user_notification'. Every time he uses the word 'comments', I use 'user_notifications'. Also, in the screencast comments belongs_to articles, whereas in my app user_notifications belongs_to user, so I replace the word 'article' with 'current_user'. I was able to setup the user_notifications successfully, except for that the newest notifications appear at the bottom. I fixed this by adding a .order to user_notifications in the show.html.erb file (see below). The problem is that since the javascript is telling it to poll for all user_notifications with an 'id > params[:after]' (see the index action in the controller below), it re-appends the user_notifications with a higher id since the order was reversed. How do I fix this?

Here is my code:

user_notifications.js.coffee

@UserNotificationPoller =
  poll: ->
    setTimeout @request, 5000

  request: ->
    $.get($('#user_notifications').data('url'), after: $('.user_notification').last().data('id'))

jQuery ->
  UserNotificationPoller.poll()

show.html.erb

<%= content_tag :div, id: "user_notifications", data: {url: user_notifications_url} do %>
    <%= render current_user.user_notifications.order(created_at: :desc) %>
<% end %>

index.js.erb

$('#user_notifications').append("<%= j render(@user_notifications) %>");
UserNotificationPoller.poll()

user_notifications_controller:

def index
    @user_notifications = current_user.user_notifications.where('id > ?', params[:after].to_i)
end
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
    • ¥200 uniapp长期运行卡死问题解决
    • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
    • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
    • ¥15 乘性高斯噪声在深度学习网络中的应用
    • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败