2016-12-06 110 views
0

我有开始这样一个web应用程序:删除瓶内存缓存

#It starts here 
@app.route('/game') 
def game(): 

里面game,它动态地构建一个图像与PIL并将其保存到/static/testing_image.png

那么它呈现的模板。

return render_template('game.html', 
          file_name=file_name, 
          image_width=SQ_SIZE, 
          sleep_time=1000 
          ) 

现在,里面game.html,什么情况是,我等sleep_time毫秒,然后我想去再打电话game,从而使新图像的生成和显示

下面的代码会等待图像完全加载后显示,等待和重定向。

function LoadImage() { 
    var img = new Image(), 
     x = document.getElementById("image"); 

    img.onload = function() { 
     x.src = img.src; 
     var sleep_time={{sleep_time}}; 
     setTimeout(function(){ 
      //I REDIRECT HERE 
      window.location="{{url_for('game')}}"; 
     }, sleep_time); 

    }; 

    img.src="{{url_for('static', filename=file_name) }}"; 
} 

的问题

问题当然是将图像从内存缓存提供的,即使底层文件,/static/testing_image.png已经被更新,烧瓶没有得到新的一。

enter image description here

您可以在下面看到testing_image.png从缓存中。

我的问题是双重的。

  1. 我应该以不同的方式做到这一点?
  2. 如果不是,我该如何强制烧瓶在图像上重新加载?

回答

1

有可能是一个更好的方法来构造这个,但很难说,没有看看你的代码的其余部分。至于破坏缓存,你应该能够使用:

http://flask.pocoo.org/snippets/40/

+0

嗯,这是本质上是调用自身的模板。我只是想在第一个调用之后进行调用,而不是在缓存上保存任何内容。 – elelias