Ajax "caching", den gode, den onde, den likegyldige?

stemmer
0

Så jeg ikke egentlig mener nettleserbufring av en Ajax forespørsel via GET-metoden, men lagring av store spørsmål (et tall, trolig dobbelt-siffer, fra 40 - 300KB spørringer) i nettleserens minne.

Hva er usett fordeler, risiko forbundet med dette?

var response = JSON.parse(xhr.responseText);
Cache.push(response); // Store parsed JSON object in global variable `Cache`
// Time passes, stuff is done ...
if(Cache[query])
    load(Cache[query])
else
    Ajax(query, cache_results);
Publisert på 29/12/2009 klokken 23:58
kilden bruker
På andre språk...                            


3 svar

stemmer
0

Ikke å ha full oversikt over systemet det er vanskelig å si, men jeg vil tro at potensielt spille med foreldede data vil være en bekymring.

Selvfølgelig, hvis du har en protokoll på plass for å løse "cache friskhet" du er på rett spor .... men så, hvorfor ikke stole på HTTP-protokollen til å gjøre dette? (HTTP GET med ETAG / siste endring overskrifter)

Svarte 30/12/2009 kl. 00:04
kilden bruker

stemmer
3

Er det en faktisk trenger? Eller er det bare optimalisering for moro skyld? Jeg vil foreslå å gjøre noen profilering først og se hvor flaskehalsene ligger. Husk at en nettside session vanligvis ikke varer så lenge, så med mindre du bruker noen form for offline lagring cache vil ikke vare så lenge.

Svarte 30/12/2009 kl. 00:05
kilden bruker

stemmer
0

Du vil sannsynligvis ønske å understreke testen minnebruken og generell ytelse av ulike nettlesere når du lagrer mange 300kb strenger. Du kan overvåke dem i Oppgavebehandling, og også bruke ytelse verktøy som Speed Tracer og dynatrace ajax utgave .

Hvis det viser seg at caching er en forestilling seier, men det begynner å bli sugd ned når du har for mange strenger i minnet, kan du tenke på å prøve HTML5 lagring eller Flash lagring til å lagre strengene - på den måten du kan cache ting på tvers av økter også. Dojo lagring er et godt bibliotek for dette.

Svarte 30/12/2009 kl. 00:06
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more