Šta je keš memorija aplikacije u HTML5?
sobes.tech АИ
Одговор од АИ
Keš aplikacije (Application Cache) u HTML5 je mehanizam koji omogućava web aplikaciji da radi offline, pružajući skup resursa (HTML stranice, CSS, JavaScript, slike) koje pretraživač kešira lokalno.
Za korišćenje keša aplikacije, potreban je fajl manifest sa ekstenzijom .appcache, koji se povezuje sa HTML stranicom putem atributa manifest u tagu <html>:
<html manifest="manifest.appcache">
...
</html>
Struktura fajla manifest je sledeća:
CACHE MANIFEST
# Verzija manifesta (opciono, za osvežavanje keša)
# v1.0
CACHE:
# Explicitno keširani resursi
/css/style.css
/js/script.js
/images/logo.png
FALLBACK:
# Rezervni resursi u slučaju nedostatka konekcije
/offline.html /
NETWORK:
# Resursi koje uvek treba da se zahtevaju iz mreže
*
Glavne sekcije fajla manifesta:
CACHE:: Resursi navedeni u ovoj sekciji će biti keširani nakon prvog učitavanja stranice sa ovim manifestom.FALLBACK:: Određuje rezervne resurse. Ako zahtev na mreži za glavni resurs ne uspe, pretraživač će učitati navedeni rezervni resurs. Format:glavni_resurs rezervni_resurs.NETWORK:: Resursi navedeni u ovoj sekciji nikada neće biti keširani i uvek će se zahtevati iz mreže. Simbol*označava da će svi resursi, koji nisu navedeni u drugim sekcijama, uvek biti zahtevani iz mreže.
Ažuriranje keša se dešava kada se fajl manifesta promeni. Pretraživač preuzima ažurirani manifest, upoređuje ga sa trenutnim i preuzima nove ili izmenjene resurse. Novi fajlovi su dostupni tek nakon osvežavanja stranice.
Događaji povezani sa kešom aplikacije:
checking: Pretraživač proverava da li postoji nova verzija manifesta.downloading: Pretraživač preuzima resurse navedene u novoj verziji manifesta.progress: Napredak preuzimanja resursa.updateready: Nova verzija keša je spremna za korišćenje. Potrebno je osvežavanje stranice.cached: Resursi su uspešno keširani prvi put.noupdate: Manifest se nije promenio.error: Došlo je do greške prilikom preuzimanja ili ažuriranja keša.
API keša aplikacije dostupan je putem window.applicationCache.
// Provera statusa keša
console.log(window.applicationCache.status);
// Obrada događaja updateready
window.applicationCache.addEventListener('updateready', function() {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Primeni novu verziju keša i osveži stranicu
window.applicationCache.swapCache();
window.location.reload();
}
}, false);
Iako je Application Cache pružao offline mogućnosti, njegovo korišćenje se ne preporučuje u novim projektima zbog složenosti upravljanja, problema sa ažuriranjem i nedostatka fleksibilnosti. Moderni pristup za offline pristup i druge funkcije progresivnih web aplikacija (PWA) su Service Workers.