Sobes.tech
Middle

Kas ir lietojumprogrammas kešā HTML5?

sobes.tech AI

Atbilde no AI

Programmas kešatmiņa (Application Cache) HTML5 ir mehānisms, kas ļauj tīmekļa lietojumprogrammai darboties bezsaistē, glabājot kopu resursus (HTML lapas, CSS, JavaScript, attēlus) vietējā pārlūkprogrammas kešatmiņā.

Lai izmantotu programmas kešatmiņu, nepieciešams .appcache paplašinājuma manifestu fails, kas ir saistīts ar HTML lapu, izmantojot manifest atribūtu <html> tagā:

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

Manifestu fails ir šāds:

CACHE MANIFEST
# Manifestu versija (neobligāti, lai atjauninātu kešatmiņu)
# v1.0

CACHE:
# Skaidri kešojami resursi
/css/style.css
/js/script.js
/images/logo.png

FALLBACK:
# Rezerves resursi, ja nav savienojuma
/offline.html /

NETWORK:
# Resursi, kuriem vienmēr jābūt pieejamiem no tīkla
*

Galvenās sekcijas:

  • CACHE:: šajā sadaļā norādītie resursi tiks kešoti pēc pirmās lapas ielādes.
  • FALLBACK:: nosaka rezerves resursus. Ja tīkla pieprasījums neizdodas, pārlūkprogramma ielādēs norādīto rezerves resursu. Formāts: galvenais_resursu rezerves_resursu.
  • NETWORK:: šajā sadaļā norādītie resursi nekad netiks kešoti un vienmēr tiks pieprasīti no tīkla. Simbols * nozīmē, ka visi resursi, kas nav norādīti citās sadaļās, tiks pieprasīti no tīkla.

Kešatmiņas atjaunināšana notiek, kad mainās manifestu fails. Pārlūkprogramma lejupielādē jauno manifestu, salīdzina ar esošo un lejupielādē jaunos vai mainītos resursus. Jauni faili ir pieejami tikai pēc lapas pārstartēšanas.

Notikumi:

  • checking: pārlūkprogramma pārbauda jaunu versiju.
  • downloading: lejupielādē jaunos resursus.
  • progress: lejupielādes progress.
  • updateready: jauna kešatmiņa ir gatava lietošanai. Nepieciešams lapas pārstartēšana.
  • cached: resursi veiksmīgi kešoti pirmo reizi.
  • noupdate: manifests nemainījās.
  • error: kļūda lejupielādē vai atjaunināšanā.

API pieejams caur window.applicationCache:

// Kešatmiņas statusa pārbaude
console.log(window.applicationCache.status);

// `updateready` notikuma apstrāde
window.applicationCache.addEventListener('updateready', function() {
  if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
    // Pielietot jauno kešatmiņu un pārstartēt lapu
    window.applicationCache.swapCache();
    window.location.reload();
  }
}, false);

Lai gan Application Cache nodrošināja offline iespējas, tā lietošana nav ieteicama jaunās projektos, jo tā ir grūti pārvaldāma, ar atjaunināšanas problēmām un mazāk elastīga. Mūsdienu pieejas ir Service Workers, kas ir ieteicams offline funkcionalitātei un citām progresīvo tīmekļa lietojumprogrammu funkcijām.