Application Cache (App - Uygulama Belleği) Nedir?
Uygulama belleği, bir web uygulamasının offline (çevrimdışı) versiyonunu yapmanın kolay bir yoludur. Bunun için bir bellek klasörü oluşturur.
HTML5 ile birlikte gelen bu özellik sayesinde, internet bağlantısı olmadan da (offline) çalışan uygulamalar yapılabilmektedir.
Uygulama belleği, üç önemli avantaja sahiptir:
HTML5 ile birlikte gelen bu özellik sayesinde, internet bağlantısı olmadan da (offline) çalışan uygulamalar yapılabilmektedir.
Uygulama belleği, üç önemli avantaja sahiptir:
- Çevrimdışı (offline) tarama: Kullanıcılar, uygulamamızı çevrimdışı iken de kullanabilirler.
- Hız: Bellek kaynakları, bilgisayar üzerinde olacağı için daha hızlı çalışır.
- Daha az server bağlantısı: Tarayıcı, sadece güncelleme/değişiklikler için sunucu bağlantısına ihtiyaç duyacaktır.
Tarayıcı Desteği
Aşağıdaki tablo, web tarayıcılarının hangi versiyondan itibaren bu özelliği desteklediğini göstermektedir:API | |||||
---|---|---|---|---|---|
Application Cache | 4.0 | 10.0 | 3.5 | 4.0 | 11.5 |
HTML Bellek Bildirimi (Cache Manifest) Örneği
Aşağıdaki örnek, bellek bildirimi içeren bir HTML dökümanıdır:
<!DOCTYPE html>
<html manifest="deneme_html.appcache">
<body>
<script src="deneme_time.js"></script>
<p id="timePara"><button onclick="getDateTime()">Tarih ve saati gör</button></p>
<p><img src="bir_resim.gif" width="336" height="69"></p>
<p> <a href="http://www.sitem.com/kalsor/app_cache_deneme_sayfasi.html" target="_blank">Bu sayfayı</a>, internet bağlantısı olamadan açtığınızda da resmin hala yüklenebilir olduğunu göreceksiniz.</p>
</body>
</html>
Cache Manifest Özelliğinin Temelleri
Cache manifest özelliğini kullanabilmek için, bu özelliği <html> tagının içinde ilan etmemiz gerekir:
<!DOCTYPE HTML>
<html manifest="demo.appcache">
...
</html>
<html manifest="demo.appcache">
...
</html>
manifest özelliğini (attribute) atadığımız bütün sayfalar, kullanıcı ziyaret ettikten sonra belleğe alınacaktır. Bir html dökümanında, manifest özelliği yoksa bu sayfa belleğe alınmayacaktır. (sayfa doğrudan bellek klasöründe gösterilmemişse...)
Html geliştiricileri, manifest dosyası için .appcache uzantısını tavsiye ediyorlar.
Bir manifest dosyası, uygun medya tipinde ayarlanmalıdır. Web sunucusunda yapılacak bu ayarda uygun medya tipi "text/cache-manifest" şeklinde olmalıdır.
Manifest Dosyası
Manifest dosyası, basit bir text dosyasıdır. Bu dosya, web tarayıcısına, nelerin belleğe alınacağını, nelerin alınmayacağını söyler.
Bir manifest dosyasının üç bölümü vardır:
- CACHE MANIFEST : İlk defa indirildiklerinde, açıldıklarında belleğe alınacak dosya listesini bu başlık altında toplarız.
- NETWORK : Bu başlık altında, hiç bir zaman belleğe alınmayacak, internet bağlantısı ile online olarak açılacak dosyalar listelenir.
- FALLBACK : Bu başlık altında, erişilemediğinde, gösterilecek sayfaların listesi oluşturulur.
CACHE MANIFEST
İlk satır (CACHE MANIFEST) zorunludur:
CACHE MANIFEST
/theme.css
/logo.gif
/main.js
/theme.css
/logo.gif
/main.js
NETWORK
network bölümü, asla belleğe alınmayacak, offline iken açılamayacak dosyaların kaynağını/ismini içerir:
NETWORK:
login.asp
Bir asterik (yıldız) işareti, geriye kalan bütün diğer dosyaların, internet bağlantısı ile açılacağını belirtir.
NETWORK
*
FALLBACK
Aşağıdaki Fallback bölümü, offline.html adında bir dosya belirtir. Bu dosya, internet bağlantısı kurulamadığında, html klasöründeki bütün dosyaların yerine açılaktır.
FALLBACK:
/html/ /offline.html
/html/ /offline.html
Cache Dosyalarını Update Etmek
Bir uygulama belleğe alındığında, bu uygulamanın, aşağıdakilerden herhangi biri gerçekleşene kadar bellekte kalması gerekir:
- Kullanıcı, tarayıcı belleğini sillene kadar
- Manifest dosyası elden geçirilinceye kadar
- Uygulama belleği, porgramlı olarak güncellenene kadar
CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.asp
FALLBACK:
/html/ /offline.html
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.asp
FALLBACK:
/html/ /offline.html
Diyez işareti ile başlayan satır (# 2012-02-21 v1.0.0), bir yorum satırıdır fakat başka bir amaca daha hizmet eder. Bir uygulama belleği sadece manifest dosyası değiştiğinde güncellenir. Bir resim yayınladığınızda, ya da bir javascript fonksiyonunu değiştirdiğinizde bunlar belleğin yenilenmesini sağlamayacaktır. Fakat bu yorum satırındaki tarihi ve versiyonu güncellemeniz, tarayıcının bellek dosyalarını güncellemesini sağlayacaktır.
Application Cache Hakkında Notlar:
Neleri belleğe alacağımız konusunda dikkatli olmalıyız.
Bir dosya bir defa tarayıcı belleğine alındığında, tarayıcı bu dosyayı belleğe aldığı versiyonuyla göstermeye devam edecektir. Eğer bu dosaya bir değişiklik yaptıysanız, son haliyle belleğe alındığından emin olmak için manifest dosaysını değiştrimeyi unutmayın.
NOT: Tarayıcılar, bellek dataları için farklı boyut limitlerine sahiptir. (Bazı tarayıcılar, her bir site için 5MB limit belirler.)
Hiç yorum yok:
Yorum Gönder