HTML API Ders_4 App Cache (Uygulama Belleği)

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:

  1. Çevrimdışı (offline) tarama: Kullanıcılar, uygulamamızı çevrimdışı iken de kullanabilirler.
  2. Hız: Bellek kaynakları, bilgisayar üzerinde olacağı için daha hızlı çalışır.
  3. 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 Cache4.010.03.54.011.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>
  
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

Yukarıdaki cache manifest listesinde, üç dosya kaynağı belirtilmiştir. Bir CSS dosyası, bir GIF resim dosyası ve bir JavaScript dosyası. Manifest dosyası yüklendiğinde, web tarayıcı bu üç dosyayı, web sitesinin kök dizininden indirecektir. Bundan sonra, kullanıcı internete bağlanamasa da bu dosyalar açması mümkün olacaktır.

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

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
Tam bir Cache Manifest Dosyası Örneği:

CACHE MANIFEST
# 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