2011-03-04 66 views
0

在我的Sinatra應用程序中,我在頭版顯示一個隨機鳴叫的連續更新列表:(這些鳴叫不是實時的,它們只是鳴叫我已經存儲在MongoHQ MongoDB數據庫)檢索sinatra中防火牆後面的數據的問題

:javascript 
    function addTweet() { 
    $.get("/tweet", function(data) { 
     $("table tr#header:first").after(data); 
    }); 
    setTimeout(addTweet, 2000); 
    } 

    $(function() { 
    setTimeout(addTweet, 2000); 
    }); 

/tweet頁面簡單地從數據庫中獲取一個隨機的鳴叫,並將其顯示爲一行:

get '/tweet' do 
    @tweet = coll.find().limit(-1).skip(rand(coll.count())).first()['text'] # get a random tweet 
    haml :tweet, :layout => false 
end 

我上部署應用程序Heroku,當我在家中使用它時它工作正常。但是,當我在工作中訪問應用程序(來自與家中相同的筆記本電腦和瀏覽器)時,它只是在頭版上一遍又一遍地顯示相同的推文(但是每次發送「/ tweet」都會正確顯示隨機推文) 。關於什麼問題的任何想法?我的JavaScript更新調用不是因爲某種原因,因爲我在防火牆後面工作(但問題不是隻有一行顯示,然後更新停止,問題是該列表不斷增加相同的推文,再次回到列表中)?

回答

1

聽起來像是一個緩存問題。嘗試禁用明確的緩存:

$.ajax({ 
    method: 'GET', 
    url: '/tweet', 
    cache: false, 
    success: function(data) { 
     $("table tr#header:first").after(data); 
    } 
});