【发布时间】:2014-04-08 07:19:49
【问题描述】:
我正在构建一个应该支持实时通知的 Rails/Javascript 应用程序。 JavaScript 是:
var chat;
$(document).ready(function(){
chat = $('#chat');
chat.append('mmm');
(function poll(){
$.ajax({ url: "http://localhost:3000/get_messages", success: function(data){
//Update your dashboard gauge
chat.append(data);
}, dataType: "json", complete: poll, timeout: 30000 });
})();
});
路线:
match 'get_messages', to: 'real_time_notifs#get_messages', :via => :get
这是控制器的方法:
def get_messages
# sleep ??? will it stop the whole application?
render :json => ['message body']
end
我希望 JavaScript 仅在有要显示的内容(例如,数据库表中出现新消息)时才会收到答案,而不会使整个应用程序停止。您能建议如何组织get_messages 方法吗?
我需要在等待时不会阻塞应用程序其余部分的解决方案。
【问题讨论】:
标签: ruby-on-rails multithreading ruby-on-rails-4 keep-alive ruby-2.0