它有效,我想让它超级快。 index page非常静态,除非日期更新或地图更新,否则几天内不会发生变化。所以应该可以非常快速地进行优化,因为它没有太大变化。我最近迁移到HRD,我的URI是montaoproject.appspot.com我重写了这个,所以它只是python和django / html(没有数据层旅行。)Memcache?其他选择?减少javascript?我首先确保没有触及数据层:
def get(self):
logo = ''
if get_host().find('.br') > 0:
cookie_django_language = 'pt-br'
logo = 'montao'
elif get_host().find('allt') > 0 and not self.request.get('hl'):
logo = ''
cookie_django_language = 'sv'
elif get_host().find('gralumo') > 0 \
and not self.request.get('hl'):
cookie_django_language = 'es_AR' # learn
else:
logo = ''
cookie_django_language = self.request.get('hl', '') # edit
if cookie_django_language:
if cookie_django_language == 'unset':
del self.request.COOKIES['django_language']
else:
self.request.COOKIES['django_language'] = \
cookie_django_language
translation.activate(cookie_django_language)
loginmsg = ''
user = users.get_current_user()
twittername = None
client = OAuthClient('twitter', self)
if client.get_cookie():
info = client.get('/account/verify_credentials')
twittername = info['screen_name']
# seconds_valid = 8600
# self.response.headers['Cache-Control'] = "public, max-age=%d" % seconds_valid
if logo == 'montao':
self.render(
u'montao',
host=get_host(),
twittername=twittername,
continue_url=get_host(),
loginmsg=loginmsg,
form_url=blobstore.create_upload_url('/fileupload'),
user_url=(api.users.create_logout_url(self.request.uri) if api.users.get_current_user() else api.users.create_login_url(self.request.uri)),
admin=users.is_current_user_admin(),
user=(users.get_current_user() if users.get_current_user() else ''
),
logo=logo,
)
else:
self.render(
u'home',
host=get_host(),
twittername=twittername,
continue_url=get_host(),
loginmsg=loginmsg,
form_url=blobstore.create_upload_url('/fileupload'),
latest=Ad.all().filter('published =',
True).order('-modified').get(),
user_url=(api.users.create_logout_url(self.request.uri) if api.users.get_current_user() else api.users.create_login_url(self.request.uri)),
admin=users.is_current_user_admin(),
guser=(users.get_current_user() if users.get_current_user() else ''
),
logo=logo,
)
答案 0 :(得分:2)
我不知道python,但如果它几天没有改变,我相信你可以写一些东西将上面的内容转换为HTML(比如每小时),然后只提供HTML版本。这将为您提供最大的优化之一,因为您的主页根本不必由脚本引擎处理。
答案 1 :(得分:1)
通常,我建议反转页面,将index.html作为静态文件,以及css和js文件,然后向服务器发出AJAX请求以填充动态位。静态文件加载速度非常快。
您可能仍然可以通过使用客户端JavaScript来确定要使用哪个徽标等来解决这个问题,但是由于create_upload_url
需要,因此渲染文件上传表单会变慢发生在服务器端。