AppCache'i kaldırmaya hazırlanma

Chrome 85, AppCache desteğini varsayılan olarak kaldırır. Çoğu geliştirici daha fazla beklemeden AppCache'den hemen çıkmalıdır.

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

Hizmet çalışanları Bu tür tarayıcılar mevcut tarayıcılarda geniş bir şekilde desteklenmektedir. Bu tür tarayıcılar, çevrimdışı sunduğu deneyim. Taşıma stratejileri başlıklı makaleyi inceleyin.

Zaman çizelgesi

Chrome yayın planındaki son değişiklikler, bu adımlardan bazılarının zamanlamasının değişebileceği anlamına gelir. Bu zaman çizelgesini güncel tutmaya çalışacağız. Ancak bu noktada, belirli aşamaları beklemek yerine lütfen mümkün olan en kısa sürede AppCache'den başka bir yere geçin.

"Kullanımdan kaldırıldı" özelliği hâlâ mevcuttur ancak kullanımı caydırıcı uyarı mesajları günlüğe kaydeder. Bir "kaldırıldı" özellik artık tarayıcıda mevcut değil.

Güvenli olmayan bağlamlarda desteğin sonlandırılması Chrome 50 (Nisan 2016)
Güvenli olmayan bağlamlardan kaldırma Chrome 70 (Ekim 2018)
Güvenli bağlamlarda desteğin sonlandırılması Chrome 79 (Aralık 2019)
AppCache kapsam kısıtlaması Chrome 80 (Şubat 2020)
"Ters" kaynak denemesi başlangıç tarihi Chrome 84 (Temmuz 2020)
Kaynak denemesinin kapsamına dahil edilenler hariç güvenli bağlamlardan kaldırma Chrome 85 (Ağustos 2020)
Kaynak denemesinin tamamlanmasıyla birlikte güvenli bağlamlardan herkes için tamamen kaldırma 5 Ekim 2021 (yaklaşık Chrome 95)

Kaynak denemesi

Zaman çizelgesinde, kaldırılması için yaklaşan iki ara hedef listelenir. AppCache, Chrome 85'ten itibaren varsayılan olarak Chrome'da kullanılamayacak. AppCache'den çıkmak için ek süreye ihtiyaç duyan geliştiriciler, "ters" işlemi için kaydolabilir kaynak denemesini kullanarak web uygulamaları için AppCache'in kullanılabilirliğini genişletebilir. Kaynak denemesi Chrome 84'te (Chrome 85'teki varsayılan kaldırma işleminden önce) başlayacak ve 5 Ekim 2021'e (yaklaşık Chrome 95) kadar etkin olacaktır. Bu noktada AppCache, kaynak deneme sürümüne kaydolmuş olanlar da dahil herkes için tamamen kaldırılacaktır.

"Ters"e katılmak için kaynak denemesi:

  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şlığına origin-trial <meta> etiketi ekleyin. Örnek: <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. Elde edilen 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çimde yeni bir alan aracılığıyla 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 dosyasına doğru kaynak deneme jetonlarının eklenmesini gösteren örnek projeyi aşağıda yerleştirilmiş olarak görebilirsiniz.

Neden birden çok 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 AppCache manifest'lerinizin tümü.

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

Kaynak deneme jetonunu HTML sayfalarınıza eklemek, window.applicationCache arayüzünü web uygulamalarınız içinden etkinleştirir. Bir jetonla ilişkilendirilmemiş sayfalar, window.applicationCache yöntemlerini ve etkinliklerini kullanamaz. Jetonu olmayan sayfalar da kaynakları AppCache'den yükleyemez. Chrome 85'ten itibaren ise AppCache yokmuş gibi davranacaktır.

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

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

“Ters” kaynak denemesi resmi olarak Chrome 84 ile birlikte başlıyor. Hemen kaynak deneme sürümüne kaydolabilir ve jetonları HTML ve AppCache manifest'lerinize ekleyebilirsiniz. Web uygulamanızın kitlesi kademeli olarak Chrome 84'e geçerken, daha önce eklediğiniz tüm jetonlar geçerli olacaktır.

AppCache manifest'inize jeton ekledikten sonra, yerel Chrome örneğinizin (sürüm 84 veya sonraki bir sürüm) kaynak deneme jetonunu, manifestinizin ö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 bu 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 yapma

Mümkün olan en kısa sürede AppCache'den başka bir sisteme geçmenizi önemle tavsiye ederiz. Web uygulamalarınızda AppCache'in kaldırılmasını test etmek istiyorsanız kaldırma işleminin simülasyonunu yapmak 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.

AppCache'in bazı işlevlerini kopyalamak için hizmet çalışanı kullanan bir polyfill sağladık. Ancak bu özellik, AppCache arayüzünün tamamını kopyalamaz. Özellikle, window.applicationCache arayüzünün veya ilgili AppCache etkinliklerinin yerine geçmez.

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

Hizmet çalışanları ve AppCache birlikte kullanılamaz

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 Service Worker'ı dağıttığınızda AppCache'i söz konusu sayfada kullanamazsınız.

Bu nedenle, Service Worker'lara tek tek geçiş yapmayı denememenizi öneririz. Önbelleğe alma mantığınızın yalnızca bir kısmını içeren bir hizmet çalışanı dağıtmak hata olur. "Boşlukları doldurmak" için AppCache'den yararlanamazsınız.

Benzer şekilde, AppCache kaldırılmadan ö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'i kaldırma planları hakkında daha fazla bilgi edinmek istiyorsanız belirli bir tarayıcı tedarikçi firmasıyla iletişime geçmenizi öneririz.

Tüm platformlarda Firefox

Firefox, 44 sürümünde (Eylül 2015) AppCache'i kullanımdan kaldırmıştır ve Eylül 2019 itibarıyla Beta ve Gecelik derlemelerinde bu uygulama desteğini kaldırmıştır.

iOS ve macOS'te Safari

Safari, 2018'in başlarında AppCache'i 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. Hizmet çalışanları, şu anda WKWebView kullanan iOS uygulamalarında desteklenmemektedir. 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

Android uygulamalarının bazı geliştiricileri, web içeriğini görüntülemek için Chrome WebView'u kullanır. Ayrıca, AppCache'i de kullanabilirler. Ancak WebView için kaynak denemesi etkinleştirilemez. Bu doğrultuda Chrome WebView, Chrome 90'da beklenen son kaldırma işlemi gerçekleşene kadar kaynak denemesi olmadan AppCache'i destekleyecek.

Daha fazla bilgi

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

Makaleler

Araçlar

Yardım alma

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

Stack Overflow'da, html5-appcache etiketini kullanarak AppCache'den başka bir sisteme geçiş yapma hakkında genel bir soru sorabilirsiniz.

Chrome'un AppCache'in kaldırılmasıyla ilgili bir hatayla karşılaşırsanız lütfen Chromium sorun izleyiciyi kullanarak bu durumu bildirin.

Hero resim, Smithsonian Enstitüsü Arşivleri, Acc. 11-007, Box 020, Resim No. MNH-4477.