Sobes.tech
Middle

Kas yra programos talpykla HTML5?

sobes.tech AI

Atsakymas iš AI

Programos talpykla (Application Cache) HTML5 yra mechanizmas, leidžiantis interneto programai dirbti neprisijungus, saugant tam tikrus išteklius (HTML puslapius, CSS, JavaScript, vaizdus) vietiniame naršyklės talpykloje.

Norint naudoti programos talpyklą, reikalingas .appcache plėtinio manifestas failas, kuris yra susietas su HTML puslapiu per manifest atributą <html> žymoje:

<html manifest="manifest.appcache">
...
</html>

Manifesto failo struktūra yra tokia:

CACHE MANIFEST
# Manifesto versija (pasirinktinai, norint atnaujinti talpyklą)
# v1.0

CACHE:
# Aiškiai talpykloje saugomi ištekliai
/css/style.css
/js/script.js
/images/logo.png

FALLBACK:
# Atsarginiai ištekliai, jei nėra ryšio
/offline.html /

NETWORK:
# Ištekliai, kurie visada turi būti gaunami iš tinklo
*

Pagrindinės manifesto failo sekcijos:

  • CACHE:: išvardyti ištekliai bus talpykloje po pirmojo puslapio įkėlimo.
  • FALLBACK:: nustato atsarginius išteklius. Jei tinklo užklausa nepavyksta, naršyklė įkelia nurodytą atsarginį išteklių. Formatą sudaro pagrindinis_išteklius atsarginis_išteklius.
  • NETWORK:: išvardyti ištekliai niekada nebus talpykloje ir visada bus gaunami iš tinklo. Simbolis * reiškia, kad visi ištekliai, kurie nėra išvardyti kituose skyriuose, bus gaunami iš tinklo.

Talpyklos atnaujinimas vyksta, kai pakeičiamas manifesto failas. Naršyklė įkelia naują manifestą, lygina jį su esamu ir įkelia naujus ar pakeistus išteklius. Nauji failai tampa prieinami tik perkrovus puslapį.

Įvykiai, susiję su programos talpykla:

  • checking: naršyklė tikrina, ar yra nauja versija.
  • downloading: naršyklė įkelia naujos versijos išteklius.
  • progress: įkėlimo pažanga.
  • updateready: nauja talpyklos versija paruošta naudoti. Reikalingas puslapio perkrovimas.
  • cached: ištekliai sėkmingai įkelti į talpyklą pirmą kartą.
  • noupdate: manifestas nepasikeitė.
  • error: įvyko klaida įkeliant ar atnaujinant talpyklą.

API prieiga prie talpyklos yra per window.applicationCache.

// Talpyklos būsenos patikrinimas
console.log(window.applicationCache.status);

// `updateready` įvykio apdorojimas
window.applicationCache.addEventListener('updateready', function() {
  if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
    // Naudoti naują versiją ir perkrauti puslapį
    window.applicationCache.swapCache();
    window.location.reload();
  }
}, false);

Nors Application Cache suteikė offline galimybes, jo naudojimas nerekomenduojamas naujuose projektuose dėl sudėtingo valdymo, atnaujinimo problemų ir lankstumo trūkumo. Šiuolaikinis požiūris į offline prieigą ir kitas progresyvių interneto programų funkcijas yra naudojant Service Workers.