在我的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更新调用是不是因为某种原因而工作,因为我在防火墙后面(但问题不是只有一行显示然后更新停止,问题是列表不断添加相同的推文和再次到列表)?
答案 0 :(得分:1)
听起来像是一个缓存问题。尝试明确禁用缓存:
$.ajax({
method: 'GET',
url: '/tweet',
cache: false,
success: function(data) {
$("table tr#header:first").after(data);
}
});