Sobes.tech
Middle

HTML5 da ilova keshining nima?

sobes.tech AI

AIdan javob

HTML5 da Application Cache mexanizmi bo'lib, u web ilovalarining oflayn ishlashini ta'minlaydi, brauzer lokal ravishda keshga oladigan resurslar (HTML sahifalar, CSS, JavaScript, rasmlar) to'plamini taqdim etadi.

Application Cache'dan foydalanish uchun .appcache kengaytmali manifest fayli talab qilinadi, u <html> tegida manifest atributi orqali HTML sahifaga bog'lanadi:

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

Manifest faylining tuzilishi quyidagicha:

CACHE MANIFEST
# Manifest versiyasi (ixtiyoriy, cache yangilash uchun)
# v1.0

CACHE:
# Aniq keshga olinadigan resurslar
/css/style.css
/js/script.js
/images/logo.png

FALLBACK:
# Aloqa bo'lmaganda zaxira resurslar
/offline.html /

NETWORK:
# Har doim tarmoqdan so'raladigan resurslar
*

Manifest faylining asosiy bo'limlari:

  • CACHE:: Bu bo'limda ro'yxatga olingan resurslar, birinchi sahifa yuklangandan so'ng, keshga olinadi.
  • FALLBACK:: Zaxira resurslarni belgilaydi. Agar tarmoq so'rovi asosiy resurs uchun muvaffaqiyatsiz bo'lsa, brauzer zaxira resursni yuklaydi. Format: asosiy_resurs zaxira_resurs.
  • NETWORK:: Bu bo'limda ro'yxatga olingan resurslar hech qachon keshga olinmaydi va har doim tarmoqdan so'raladi. * belgilari, boshqa bo'limlarda ko'rsatilmagan barcha resurslar har doim tarmoqdan so'ralishini anglatadi.

Application Cache yangilanishi, manifest fayli o'zgarganda yuzaga keladi. Brauzer yangilangan manifestni yuklab, uni hozirgi bilan solishtiradi va yangi yoki o'zgartirilgan resurslarni yuklaydi. Yangi fayllar faqat sahifa yangilanganidan so'ng mavjud bo'ladi.

Application Cache bilan bog'liq voqealar:

  • checking: Brauzer yangi versiya mavjudligini tekshiradi.
  • downloading: Brauzer yangi manifestda ko'rsatilgan resurslarni yuklaydi.
  • progress: Resurslarni yuklash jarayoni.
  • updateready: Yangi cache versiyasi foydalanishga tayyor. Sahifani yangilash kerak.
  • cached: Resurslar birinchi marta muvaffaqiyatli keshga olindi.
  • noupdate: Manifest o'zgarmadi.
  • error: Cache yuklash yoki yangilashda xato yuz berdi.

Application Cache API window.applicationCache orqali mavjud.

// Cache holatini tekshirish
console.log(window.applicationCache.status);

// updateready voqeasini boshqarish
window.applicationCache.addEventListener('updateready', function() {
  if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
    // Yangi cache versiyasini qo'llash va sahifani yangilash
    window.applicationCache.swapCache();
    window.location.reload();
  }
}, false);

Application Cache oflayn imkoniyatlar taqdim etsa-da, uning foydalanishi yangi loyihalarda tavsiya etilmaydi, chunki boshqarish qiyin, yangilash muammolari va moslashuvchanlikning etishmasligi sababli. Zamonaviy yondashuvlar sifatida Service Workers oflayn kirish va boshqa funksiyalar uchun ishlatiladi.