在防火墙后面的sinatra中检索数据的问题

时间:2011-03-04 21:31:23

标签: javascript ajax heroku sinatra firewall

在我的Sinatra应用程序中,我在我的首页上显示不断更新的随机推文列表:(推文不是实时的,它们只是我存储在MongoDB数据库中的推文列表MongoHQ)

: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 个答案:

答案 0 :(得分:1)

听起来像是一个缓存问题。尝试明确禁用缓存:

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