AppCache'i kaldırmaya hazırlanma

Chrome 85, AppCache desteğini varsayılan olarak kaldırır. Çoğu geliştiricinin AppCache'i şimdi taşıması ve daha fazla beklememesi gerekir.

Önceki duyurulardan sonra, AppCache desteği Chrome'dan ve diğer Chromium tabanlı tarayıcılardan kaldırılacaktır. Geliştiricilerin, daha uzun süre beklemek yerine, AppCache'den hemen çıkmalarını öneririz.

Mevcut tarayıcılarda yaygın olarak desteklenen Service Worker'lar, AppCache'in sunduğu çevrimdışı deneyimi sunmaya bir alternatif sunar. Taşıma stratejileri başlıklı makaleyi inceleyin.

Zaman çizelgesi

Chrome sürüm planındaki son değişiklikler, bu adımlardan bazılarının zamanlamasının değişiklik gösterebileceği anlamına gelir. Bu zaman çizelgesini güncel tutmaya çalışacağız, ancak şu anda belirli aşamaları beklemek yerine, lütfen AppCache'den en kısa sürede geçiş yapın.

"Kullanımdan kaldırılan" özellik hâlâ mevcuttur, ancak kullanımı teşvik eden uyarı mesajlarını günlüğe kaydeder. Tarayıcıda artık "kaldırılmış" bir özellik yoktur.

Güvenli olmayan bağlamlarda kullanımdan kaldırma Chrome 50 (Nisan 2016)
Güvenli olmayan bağlamlardan kaldırma Chrome 70 (Ekim 2018)
Güvenli bağlamlarda kullanımdan kaldırma Chrome 79 (Aralık 2019)
AppCache kapsam kısıtlaması Chrome 80 (Şubat 2020)
"Ters" kaynak denemesi başlıyor Chrome 84 (Temmuz 2020)
Kaynak denemesine kaydolanlar hariç güvenli bağlamlardan kaldırma Chrome 85 (Ağustos 2020)
Kaynak denemesinin tamamlanmasıyla birlikte, herkes için güvenli bağlamlardan tamamen kaldırma işlemi 5 Ekim 2021 (yaklaşık Chrome 95)

Kaynak denemesi

Zaman çizelgesinde, kaldırma işlemi için yaklaşan iki aşama listelenir. Chrome 85'ten itibaren AppCache, artık Chrome'da varsayılan olarak kullanılamayacaktır. AppCache'den taşımak için ek zamana ihtiyaç duyan geliştiriciler, web uygulamalarında AppCache'in kullanılabilirliğini artırmak amacıyla "ters" kaynak denemesine kaydolabilir. Kaynak denemesi Chrome 84'te başlayacak (Chrome 85'teki varsayılan kaldırma işleminden önce) ve 5 Ekim 2021'e (yaklaşık Chrome 95) kadar devam edecek. Bu tarihten sonra AppCache, kaynak denemesine kaydolanlar da dahil olmak üzere herkes için tamamen kaldırılacaktır.

"Ters" kaynak denemesine katılmak için:

  1. Kaynağınız için jeton isteyin.
  2. Jetonu HTML sayfalarınıza ekleyin. Bunu yapmanın iki yolu vardır:
    • Her sayfanın başına origin-trial <meta> etiketi ekleyin. Örneğin: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • Alternatif olarak, sunucunuzu Origin-Trial HTTP üst bilgisini içeren yanıtlar döndürecek şekilde yapılandırın. Bunun sonucunda oluşturulan yanıt başlığı aşağıdaki gibi görünmelidir: Origin-Trial: TOKEN_GOES_HERE
  3. Aynı jetonu AppCache manifest'lerinize ekleyin. Bu işlemi manifest dosyanızdaki şu biçime sahip yeni bir alan üzerinden yapın:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(ORIGIN-TRIAL ile jetonunuz arasında yeni bir satır olması gerekir.)

Hem index.html hem de manifest.appcache dosyalarına doğru kaynak denemesi jetonlarının nasıl eklendiğini gösteren aşağıda yerleştirilmiş bir örnek proje görebilirsiniz.

Neden birden fazla yerde jeton gerekiyor?

Aynı kaynak deneme jetonunun şunlarla ilişkilendirilmesi gerekir:

  • AppCache kullanan tüm HTML sayfalarınız.
  • ORIGIN-TRIAL manifest alanı aracılığıyla tüm AppCache manifest'leriniz.

Geçmişte kaynak denemelerine katıldıysanız jetonu yalnızca HTML sayfalarınıza eklemiş olabilirsiniz. AppCache "ters" kaynak denemesi, AppCache manifest'lerinizin her biriyle bir jeton ilişkilendirmeniz gerektiği açısından özeldir.

Kaynak deneme jetonunu HTML sayfalarınıza eklediğinizde, web uygulamalarınızda window.applicationCache arayüzünü etkinleştirirsiniz. Bir jetonla ilişkilendirilmeyen sayfalar window.applicationCache yöntemlerini ve etkinliklerini kullanamaz. Jetonu olmayan sayfalar da AppCache'den kaynak yükleyemez. Chrome 85'ten itibaren AppCache yokmuş gibi davranırlar.

Kaynak deneme jetonunu AppCache manifest'lerinize eklemek, her manifestin hâlâ geçerli olduğunu gösterir. Chrome 85'ten itibaren, ORIGIN-TRIAL alanı olmayan manifest'ler bozuk olarak değerlendirilecek ve manifest içindeki kurallar yoksayılacaktır.

Kaynak denemesinin dağıtım zamanlaması ve lojistiği

"Ters" kaynak denemesi resmi olarak Chrome 84 ile başlıyor olsa da kaynak denemesine hemen kaydolup jetonları HTML ve AppCache manifest'lerinize ekleyebilirsiniz. Web uygulamanızın kitlesi Chrome 84'e kademeli olarak yükseltildiğinden, daha önce eklemiş olduğunuz tüm jetonlar geçerli olacaktır.

AppCache manifest'inize jeton ekledikten sonra yerel Chrome örneğinizin (sürüm 84 veya sonraki sürümler) kaynak deneme jetonunu, manifest dosyanızın önbelleğe alınmış girişleriyle düzgün bir şekilde ilişkilendirdiğini onaylamak için about://appcache-internals adresini ziyaret edin. Kaynak denemeniz tanınırsa ilgili sayfada manifest dosyanızla ilişkilendirilmiş Token Expires: Tue Apr 06 2021... bulunan bir alan görürsünüz:

Tanınan bir jetonu gösteren about://appcache-internals arayüzü.

Kaldırmadan önce test etme

Mümkün olan en kısa sürede AppCache'den geçiş yapmanızı önemle tavsiye ederiz. Web uygulamalarınızda AppCache'in kaldırılmasını test etmek istiyorsanız, kaldırma işlemini simüle etmek için about://flags/#app-cache işaretini kullanın. Bu bayrak, Chrome 84 sürümünden itibaren kullanılabilir.

Taşıma stratejileri

Mevcut tarayıcılarda yaygın olarak desteklenen Service Worker'lar, AppCache tarafından sağlanan çevrimdışı deneyime bir alternatif sunar.

Size, AppCache arayüzünün tamamını kopyalamasa da, AppCache işlevlerinin bir kısmını kopyalamak için hizmet çalışanı kullanan bir polyfill sunulmaktadır. Özellikle window.applicationCache arayüzünün veya ilgili AppCache etkinliklerinin yerini almaz.

Daha karmaşık durumlarda, Workbox gibi kitaplıklar, web uygulamanız için modern bir Service Worker oluşturmanın kolay bir yolunu sunar.

Service Worker'lar ve AppCache

Taşıma stratejiniz üzerinde çalışırken Chrome'un, bir hizmet çalışanının kontrolü altında yüklenen tüm sayfalarda AppCache işlevini devre dışı bırakacağını lütfen unutmayın. Başka bir deyişle, belirli bir sayfayı kontrol eden bir hizmet çalışanı dağıttığınızda artık bu sayfada AppCache'i kullanamazsınız.

Bu nedenle, Service Worker'lara tek tek geçiş yapmamanızı öneririz. Önbelleğe alma mantığınızın yalnızca bir kısmını içeren bir Service Worker dağıtmak hata olur. "Boşlukları doldurmak" için AppCache'e geri dönemezsiniz.

Benzer şekilde, AppCache'i kaldırmadan önce bir hizmet çalışanı dağıtır ve ardından önceki AppCache uygulamanıza geri dönmeniz gerektiğini fark ederseniz bu hizmet çalışanının kaydını iptal ettiğinizden emin olmanız gerekir. Belirli bir sayfa için kapsam dahilinde kayıtlı bir hizmet çalışanı olduğu sürece AppCache kullanılmaz.

Platformlar arası hikaye

AppCache kaldırma planları hakkında daha fazla bilgi edinmek için belirli bir tarayıcı tedarikçi firmasıyla görüşmenizi öneririz.

Tüm platformlarda Firefox

Firefox 44 sürümünde (Eylül 2015) AppCache'i kullanımdan kaldırdı ve Eylül 2019 itibarıyla Beta ve Nightly derlemelerinde AppCache'e yönelik desteği kaldırdı.

iOS ve macOS'te Safari

Safari, AppCache'i 2018'in başlarında kullanımdan kaldırdı.

iOS'ta Chrome

iOS için Chrome, diğer platformlardaki Chrome'dan farklı bir tarayıcı motoru kullandığından WKWebView özel bir durumdur. WKWebView kullanan iOS uygulamalarında şu anda hizmet çalışanları desteklenmemektedir ve Chrome'un AppCache kaldırma duyurusu, iOS için Chrome'da AppCache'in kullanılabilirliğini kapsamaz. Web uygulamanızın önemli bir iOS için Chrome kitlesine sahip olduğunu biliyorsanız lütfen bunu unutmayın.

Android Web Görünümleri

Bazı Android uygulaması geliştiricileri, web içeriğini görüntülemek için Chrome WebView'nü kullanır. AppCache'i de kullanabilir. Ancak Web Görünümü için kaynak denemesini etkinleştirmek mümkün değildir. Bu bilgiler ışığında Chrome Web Görünümü, nihai kaldırma işlemi gerçekleşene kadar (Chrome 90'da bekleniyor) AppCache'i kaynak denemesi olmadan destekleyecektir.

Daha fazla bilgi

Aşağıda, AppCache'den hizmet çalışanlarına geçiş yapan geliştiriciler için bazı kaynaklar verilmiştir.

Makaleler

Araçlar

Yardım alma

Belirli bir aracı kullanırken sorunla karşılaşırsanız ilgili sorunun GitHub deposunda ilgili sorunu açın.

Stack Overflow'da html5-appcache etiketini kullanarak AppCache'den geçiş yapmayla ilgili genel bir soru sorabilirsiniz.

Chrome'un AppCache kaldırma işlemiyle ilgili bir hatayla karşılaşırsanız lütfen Chromium sorun izleyiciyi kullanarak bu hatayı bildirin.

Smithsonian Institution Archives, Acc. 11-007, Box 020, Resim No. MNH-4477.