memcache GAE中的静态首页

时间:2013-04-29 15:29:30

标签: python google-app-engine memcached

下面给出了写出我的静态首页的类。谷歌建议记忆静态页面以获得更好的性能,但我对如何做到这一点感到迷茫。有什么建议吗?

class MainHandler(webapp2.RequestHandler):
  def get (self, q):
    if q is None:
      q = 'index.html'

    path = os.path.join (os.path.dirname (__file__), q)
    self.response.headers ['Content-Type'] = 'text/html'
    self.response.write (template.render (path, {}))

1 个答案:

答案 0 :(得分:2)

Memcaching?你确定吗?您不会获得任何性能改进,因为它只是模板渲染。无论如何,你可以这样做,如下所述。

from google.appengine.api import memcache

class MainHandler(webapp2.RequestHandler):
  def get (self, q):
    if q is None:
      q = 'index.html'

    rendered = memcache.get('static_%s' % q)
    if rendered is None:
        path = os.path.join (os.path.dirname (__file__), q)
        rendered = template.render (path, {})
    self.response.headers['Content-Type'] = 'text/html'
    self.response.write(rendered)

更好的方法是使用客户端缓存,例如添加Last-Modified和eTag标头。 有关如何输出304 Not Modified的一些信息,请访问:Send a "304 Not Modified" for images stored in the datastore