проблема с извлечением данных в sinatra за брандмауэром - PullRequest
0 голосов
/ 05 марта 2011

В моем приложении 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, иэто работает нормально, когда я получаю доступ к нему дома.Однако, когда я получаю доступ к приложению на работе (с того же ноутбука и браузера, что и дома), оно просто снова и снова отображает один и тот же твит на первой странице (но при переходе к «/ твит» правильно отображаются случайные твиты каждый раз),Есть идеи, в чем проблема?Мой вызов обновления javascript по какой-то причине не работает, потому что я за брандмауэром (но проблема не в том, что отображается только одна строка, а затем обновление останавливается, проблема в том, что список продолжает добавлять один и тот же твит иснова к списку)?

1 Ответ

1 голос
/ 05 марта 2011

Похоже на проблему с кешированием. Попробуйте явно отключить кеширование:

$.ajax({
    method: 'GET',
    url: '/tweet',
    cache: false,
    success: function(data) {
        $("table tr#header:first").after(data);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...