Sobes.tech
Middle

Ce este cache-ul aplicației în HTML5?

sobes.tech AI

Răspuns de la AI

Cache-ul aplicației (Application Cache) în HTML5 este un mecanism care permite aplicațiilor web să funcționeze offline, oferind un set de resurse (pagini HTML, CSS, JavaScript, imagini) pe care browser-ul le cachează local.

Pentru utilizarea cache-ului aplicației, este necesar un fișier manifest cu extensia .appcache, legat de pagina HTML prin atributul manifest în tag-ul <html>:

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

Structura fișierului manifest este următoarea:

CACHE MANIFEST
# Versiunea manifestului (opțional, pentru actualizarea cache-ului)
# v1.0

CACHE:
# Resurse explicit cache-uite
/css/style.css
/js/script.js
/images/logo.png

FALLBACK:
# Resurse de rezervă în cazul lipsei conexiunii
/offline.html /

NETWORK:
# Resurse care trebuie întotdeauna solicitate din rețea
*

Secțiunile principale ale fișierului manifest sunt:

  • CACHE:: Resursele listate în această secțiune vor fi cache-uite după încărcarea primei pagini cu manifestul specificat.
  • FALLBACK:: Definește resurse de rezervă. Dacă o solicitare de rețea pentru o resursă principală eșuează, browser-ul va încărca resursa de rezervă indicată. Format: resursă_principală resursă_de_rezervă.
  • NETWORK:: Resursele listate în această secțiune nu vor fi niciodată cache-uite și vor fi întotdeauna solicitate din rețea. Simbolul * înseamnă că toate resursele neenumerate în alte secțiuni vor fi întotdeauna solicitate din rețea.

Actualizarea cache-ului aplicației are loc atunci când fișierul manifest se modifică. Browser-ul descarcă manifestul actualizat, îl compară cu cel curent și descarcă resursele noi sau modificate. Fişierele noi sunt disponibile doar după reîncărcarea paginii.

Evenimentele legate de cache-ul aplicației:

  • checking: Browser-ul verifică dacă există o versiune nouă a manifestului.
  • downloading: Browser-ul descarcă resursele indicate în noua versiune a manifestului.
  • progress: Progresul descărcării resurselor.
  • updateready: Noua versiune a cache-ului este gata pentru utilizare. Este necesară reîncărcarea paginii.
  • cached: Resursele au fost cache-uite cu succes la prima încărcare.
  • noupdate: Manifestul nu s-a schimbat.
  • error: A apărut o eroare la încărcarea sau actualizarea cache-ului.

API-ul cache-ului aplicației este disponibil prin window.applicationCache.

// Verificarea stării cache-ului
console.log(window.applicationCache.status);

// Tratarea evenimentului updateready
window.applicationCache.addEventListener('updateready', function() {
  if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
    // Aplică noua versiune a cache-ului și reîncarcă pagina
    window.applicationCache.swapCache();
    window.location.reload();
  }
}, false);

Deși Application Cache oferea funcționalități offline, utilizarea sa nu este recomandată în proiecte noi din cauza complexității de gestionare, a problemelor de actualizare și a lipsei de flexibilitate. Pentru acces offline și alte funcții ale aplicațiilor web progresive (PWA), se utilizează Service Workers.