რა არის აპლიკაციის ქეში HTML5-ში?
sobes.tech AI
პასუხი AI-სგან
აპლიკაციის კეში (Application Cache) HTML5-ში არის მექანიზმი, რომელიც საშუალებას აძლევს ვებ-აპლიკაციას მუშაობდეს ოფლაინ რეჟიმში, უზრუნველყოფს რესურსების (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 უზრუნველყოფდა ოფლაინ შესაძლებლობებს, მისი გამოყენება არ არის რეკომენდებული ახალი პროექტებისთვის, რადგან მართვა რთულია, განახლებაში პრობლემები აქვს და მოქნილობა ნაკლებია. თანამედროვე მიდგომა — Service Workers — გამოიყენება ოფლაინ წვდომისა და სხვა ფუნქციებისთვის.