Nach ein paar kleineren Experimenten bin ich erstaunt, wie schnell die Menüdarstellung bei Add-ons sein kann, wenn man Webseiten zwischenspeichert. NHL.com braucht über zwei Sekunden für eine Antwort, mit Cache ist die Wartezeit zum Hauptmenü manuell nicht wirklich zu messen (geschätzt so 250ms). Gerade im Hinblick auf die ARM Platformen ist die Zeiteinsparnis enorm.
Der Code dürfte selbsterklärend sein:
Code
def request(url,method='get',data='',ttl=3600):#returns a cached version if we have a fresh one
if ttl == 0:
return utils.GET(url)#todo post
path = utils.f_translate_path(utils.f_basepath() + '/webcache/' + utils.hash(url))
epoch = utils.epoch()
if utils.f_check_existance(path):
f = utils.f_open(path)
abs_ttl = int(f[:10])
f = f[11:]
if not utils.f_check_existance(path) or abs_ttl < epoch:#checks if the milk is sour
f = utils.GET(url)#todo post
utils.f_write(path,str(epoch+ttl)+f)
print 'request new file'
else:
print 'use cached copy'
return f
Alles anzeigen
Für Menüs ohne häufige Änderungen ist das sicher nicht schlecht.