Mis on rakenduse vahemälu HTML5-s
sobes.tech AI
Vastus AI-lt
Rakenduse vahemälu (Application Cache) HTML5-s on mehhanism, mis võimaldab veebirakendusel töötada offline-olekus, salvestades kohalikku vahemällu ressursid (HTML-lehed, CSS, JavaScript, pildid).
Rakenduse vahemälu kasutamiseks on vajalik .appcache laiendiga manifestifail, mis on seotud HTML-lehega manifest atribuudi kaudu <html>-s:
<html manifest="manifest.appcache">
...
</html>
Manifestifaili struktuur on järgmine:
CACHE MANIFEST
# Manifesti versioon (valikuline, vahemälu uuendamiseks)
# v1.0
CACHE:
# Selgelt vahemällu salvestatavad ressursid
/css/style.css
/js/script.js
/images/logo.png
FALLBACK:
# Varuressursid ühenduse puudumisel
/offline.html /
NETWORK:
# Ressursid, mida alati tuleb nõuda võrgust
*
Peamised sektsioonid:
CACHE:: selles jaotises loetletud ressursid salvestatakse vahemällu pärast esimest lehe laadimist.FALLBACK:: määrab varuressursid. Kui võrgupäring ebaõnnestub, laadib brauser määratud varuressursi. Vorming:peamine_ressur varuressur.NETWORK:: selles jaotises loetletud ressursid ei salvestata kunagi vahemällu ning laaditakse alati võrgust. Sümbol*tähendab, et kõik ressursid, mis ei ole loetletud teistes jaotistes, laaditakse alati võrgust.
Vahemälu uuendamine toimub, kui manifestifail muutub. Brauser laadib uue manifesti, võrdleb seda olemasolevaga ja laadib uued või muudetud ressursid. Uued failid on saadaval ainult lehe uuesti laadimisel.
Rakenduse vahemälu sündmused:
checking: brauser kontrollib, kas on uus versioon.downloading: brauser laadib uue manifesti ressursid.progress: laadimise edenemine.updateready: uus vahemälu on valmis kasutamiseks. Vajalik lehe uuesti laadimine.cached: ressursid on edukalt esimest korda vahemällu salvestatud.noupdate: manifest ei ole muutunud.error: tekkis viga laadimisel või uuendamisel.
API rakenduse vahemälu jaoks on kättesaadav window.applicationCache kaudu:
// Vahemälu staatuse kontroll
console.log(window.applicationCache.status);
// `updateready` sündmuse töötleja
window.applicationCache.addEventListener('updateready', function() {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Kasutada uut vahemälu ja uuesti laadida leht
window.applicationCache.swapCache();
window.location.reload();
}
}, false);
Kuigi Application Cache võimaldas offline funktsioone, ei soovitata seda kasutada uutes projektides, kuna selle haldamine on keeruline, uuendamise probleemid ja paindlikkuse puudumine. Tänapäevased lähenemised on Service Workers, mis on soovitatavad offline juurdepääsuks ja muude funktsioonide jaoks.