2010-02-03 24 views
3

我試圖創建一個實時供稿區塊,它可以識別添加到論壇討論中的最新數據,並自動更新該論壇上最新帖子的另一個頁面上的區塊。我正在使用Ruby on Rails,我真的很感謝這方面的幫助。如何使用Rails創建實時Feed

(如果我的問題不明確,我希望我可以對這些例子中的一個更具體)。我正在嘗試構建類似博客網站時下的滾動twitter更新,或者不介意類似自動更新自己的twitter主頁。我假設使用某種投票功能的Twitter主頁musst。

如何着手建立的其中之一將是真棒

回答

5

這些網站這樣做定期輪詢由JavaScript製成的XMLHttpRequest服務器的任何幫助。這是由setInterval功能

最短的版本是這樣做可能(jQuery的,但庫翻譯將是簡單):

setInterval(function() { 
    $.getJSON('/posts.json', function(posts) { 
    // code to remove old posts 
    // code to insert new posts 
    }); 
}, 5000); 

5000是在函數調用之間毫秒的時間。

,您將不得不自己的帖子控制器只返回最新的帖子:

class PostsController < ApplicationController 
    @posts = Post.find(:all, :order => 'created_at desc') 

    respond_to do |format| 
    format.html 
    format.json { render :json => @posts.to_json } 
    end 
end 
+0

感謝奔,jQuery是偉大的。但是,即使我有50-60個用戶同時登錄,也不會有太多的服務器請求? 滾動twitter feed也是這樣工作嗎? – Sid 2010-02-04 10:08:18

+1

嗯,這取決於很多。如果它每5秒更新一次,並且有一個簡單的數據庫查詢,我對此表示懷疑。但是如果你需要擠出更多的性能,可以考慮使用Rails Metal:http://railscasts.com/episodes/150-rails-metal – Ben 2010-02-04 14:47:39