Кеши барномаи HTML5 чист?
sobes.tech AI
Ҷавоб аз AI
Кэшии барномаи (Application Cache) дар HTML5 механизме мебошад, ки имкон медиҳад, ки веббарнома offline кор кунад, бо пешниҳоди маҷмӯи захираҳо (саҳифаҳои HTML, CSS, JavaScript, тасвирҳо), ки браузер онҳоро маҳаллӣ кеш мекунад.
Барои истифодаи кэши барнома, лозим аст, ки файл манифест бо васеъшавии .appcache дошта бошад, ки бо саҳифаи HTML тавассути хосияти manifest дар тег <html> пайваст мешавад:
<html manifest="manifest.appcache">
...
</html>
Структураи файли манифест чунин аст:
CACHE MANIFEST
# Нусхаи манифест (ихтиёрӣ, барои навсозии кэш)
# v1.0
CACHE:
# Захираҳои ба таври ошкоро кешшуда
/css/style.css
/js/script.js
/images/logo.png
FALLBACK:
# Захираҳои эҳтиётӣ дар ҳолати набудани пайвастӣ
/offline.html /
NETWORK:
# Захираҳое, ки ҳамеша бояд аз шабака талаб карда шаванд
*
Бозгаштҳои асосии файли манифест:
CACHE:: Захираҳое, ки дар ин бахш зикр шудаанд, пас аз боркунии аввалини саҳифа бо манифест зерин кеш мешаванд.FALLBACK:: Муайян мекунад, ки кадом захираҳо эҳтиётӣ мебошанд. Агар дархости шабакавӣ барои захираи асосӣ ноком шавад, браузер захираи эҳтиётиро бор мекунад. Формат:захираи_асосӣ захираи_эҳтиётӣ.NETWORK:: Захираҳое, ки дар ин бахш зикр шудаанд, ҳеҷ гоҳ кеш намешаванд ва ҳамеша аз шабака талаб карда мешаванд. Символ*маънои онро дорад, ки ҳама захираҳое, ки дар дигар бахшҳо зикр нашудаанд, ҳамеша аз шабака талаб карда мешаванд.
Навсозии кэш вақте рӯй медиҳад, ки файли манифест тағир ёбад. Браузер навтарин манифестро бор мекунад, бо файли мавҷуда муқоиса мекунад ва захираҳои нав ё тағирёфтаҳоро бор мекунад. Файлҳои нав танҳо пас аз наворезии саҳифа дастрас мешаванд.
Ҳодисаҳо, ки бо кэши барнома алоқаманданд:
checking: Браузер нусхаи навро меҷӯяд.downloading: Браузер захираҳои дар нусхаи нав зикршударо бор мекунад.progress: Пешрафти боркунии захираҳо.updateready: Нусхаи нав барои истифода омода аст. Зарур аст, ки саҳифа нав карда шавад.cached: Захираҳо бори аввал бо муваффақият кеш шудаанд.noupdate: Манифест тағир наёфтааст.error: Хатое дар боркунӣ ё навсозии кэш рӯй дод.
API-и кэши барнома тавассути window.applicationCache дастрас аст.
// Санҷиши ҳолати кэш
console.log(window.applicationCache.status);
// Ҳодисаи updateready-ро коркард кардан
window.applicationCache.addEventListener('updateready', function() {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Истифодаи нусхаи нав ва навсозии саҳифа
window.applicationCache.swapCache();
window.location.reload();
}
}, false);
Ҳатто ки Application Cache имкониятҳои offline пешниҳод мекард, истифодаи он дар лоиҳаҳои нав тавсия намешавад, зеро идоракунӣ душвор аст, бо масъалаҳои навсозӣ ва норасоии чандирӣ. Барои дастрасии offline ва функсияҳои дигар дар веб-барномаҳои пешрафта (PWA) Service Workers истифода мешаванд.