AppCache'i kaldırmaya hazırlanma

Chrome 85'te AppCache desteği varsayılan olarak kaldırıldı. Çoğu geliştiricinin AppCache'ten hemen geçiş yapması ve daha fazla beklememesi gerekir.

Önceki duyurularımıza ek olarak, AppCache desteği Chrome'dan ve Chromium tabanlı diğer tarayıcılardan kaldırılacak. Geliştiricilerin daha fazla beklemeyip AppCache'ten hemen geçiş yapmasını öneririz.

Mevcut tarayıcılarda yaygın olarak desteklenen hizmet çalışanları, AppCache'in sunduğu çevrimdışı deneyimi sağlamak için bir alternatif sunar. Taşıma stratejileri başlıklı makaleyi inceleyin.

Zaman çizelgesi

Chrome'un yayın planında yapılan son değişiklikler nedeniyle bu adımlardan bazılarının zamanlaması değişebilir. Bu zaman çizelgesini güncel tutmaya çalışacağız, ancak bu noktada lütfen belirli aşamaları beklemek yerine mümkün olan en kısa sürede AppCache'den geçiş yapın.

"Kullanımdan kaldırılan" bir özellik hâlâ vardır ancak kullanımı engellemek için uyarı mesajları günlüğe kaydedilir. "Kaldırılan" bir özellik artık tarayıcıda mevcut değildir.

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)
"Reverse" kaynak denemesi başlıyor Chrome 84 (Temmuz 2020)
Kaynak denemesine dahil edilenler hariç güvenli bağlamlardan kaldırma Chrome 85 (Ağustos 2020)
Kaynak denemesi tamamlandıktan sonra herkes için güvenli bağlamlardan tamamen kaldırılacak. 5 Ekim 2021 (yaklaşık olarak Chrome 95)

Kaynak denemesi

Zaman çizelgesinde, kaldırılacak iki yaklaşan ara hedef listeleniyor. Chrome 85'ten itibaren AppCache, Chrome'da varsayılan olarak kullanılamayacak. AppCache'ten geçiş yapmak için ek süreye ihtiyacı olan geliştiriciler, web uygulamalarında AppCache'in kullanılabilirliğini uzatmak için "ters" orijin denemesine kaydolabilir. Kaynak denemesi, Chrome 84'te (Chrome 85'te varsayılan olarak kaldırılmadan önce) başlayacak ve 5 Ekim 2021'e (yaklaşık olarak Chrome 95) kadar etkin olacaktır. Bu noktada, 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 isteğinde bulunun.
  2. Jetonu HTML sayfalarınıza ekleyin. Bunu yapmanın iki yolu vardır:
    • Her sayfanın başına bir 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. Elde edilen yanıt üstbilgisi şöyle görünmelidir: Origin-Trial: TOKEN_GOES_HERE
  3. Aynı jetonu AppCache manifestlerinize ekleyin. Bunu, manifest dosyanızdaki yeni bir alan aracılığıyla şu biçimde yapın:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(ORIGIN-TRIAL ile jetonunuz arasında yeni bir satır olmalıdır.)

Neden birden fazla yerde jeton gerekiyor?

Aynı kaynak deneme jetonu şunlarla ilişkilendirilmelidir:

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

Geçmişte kaynak denemelerine katıldıysanız jetonu yalnızca HTML sayfalarınıza eklemiş olabilirsiniz. AppCache "ters" deneme sürümü, her AppCache manifestinizle bir jeton ilişkilendirmeniz gerektiği için özeldir.

HTML sayfalarınıza kaynak deneme jetonu eklediğinizde web uygulamalarınızda window.applicationCache arayüzü etkinleştirilir. Bir jetonla ilişkilendirilmemiş sayfalar window.applicationCache yöntemlerini ve etkinliklerini kullanamaz. Jetonsuz sayfalar da AppCache'teki kaynakları yükleyemez. Chrome 85'ten itibaren bu uygulamalar, AppCache yokmuş gibi davranacak.

AppCache manifestlerinize kaynak deneme jetonunu eklemek, her manifestin hâlâ geçerli olduğunu gösterir. Chrome 85'ten itibaren, ORIGIN-TRIAL alanı içermeyen tüm manifestler hatalı biçimlendirilmiş olarak değerlendirilecek ve manifestteki kurallar yoksayılacak.

Deneme süreci dağıtım zamanlaması ve lojistik

"Ters" kaynak denemesi Chrome 84 ile resmi olarak başlasa da bugün kaynak denemesine kaydolabilir ve jetonları HTML ile AppCache manifestlerinize ekleyebilirsiniz. Web uygulamanızın kitlesi Chrome 84'e kademeli olarak yükseldiğinde, daha önce eklediğiniz tüm jetonlar etkinleşir.

AppCache manifestinize bir jeton ekledikten sonra, Chrome'un yerel örneğinizin (84 veya sonraki sürümler) kaynak deneme jetonunu manifestinizin önbelleğe alınmış girişleriyle doğru şekilde ilişkilendirdiğini onaylamak için about://appcache-internals adresini ziyaret edin. Kaynak denemeniz tanınırsa manifestinizle ilişkili olarak bu sayfada Token Expires: Tue Apr 06 2021... içeren bir alan görürsünüz:

about://appcache-internals arayüzünde tanınan bir jeton gösteriliyor.

Kaldırmadan önce test etme

En kısa sürede AppCache'ten geçmenizi önemle tavsiye ederiz. Web uygulamalarınızda AppCache'in kaldırılmasını test etmek istiyorsanız kaldırılmasını simüle etmek için about://flags/#app-cache işaretini kullanın. Bu işaret, Chrome 84'ten itibaren kullanılabilir.

Taşıma stratejileri

Mevcut tarayıcılarda yaygın olarak desteklenen hizmet çalışanları, AppCache'in sunduğu çevrimdışı deneyime alternatif bir çözüm sunar.

AppCache'in tüm arayüzünü kopyalamasa da AppCache işlevlerinin bir kısmını kopyalamak için bir hizmet çalışanı kullanan bir polyfill sağladık. Ö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.

Service worker'lar ve AppCache aynı anda kullanılamaz

Taşıma stratejinizi oluştururken lütfen Chrome'un, bir hizmet çalışanı kontrolünde yüklenen tüm sayfalarda AppCache işlevini devre dışı bırakacağını unutmayın. Başka bir deyişle, belirli bir sayfayı kontrol eden bir hizmet çalışanı dağıttığınız anda artık o sayfada AppCache'i kullanamazsınız.

Bu nedenle, hizmet çalışanlarına parça parça geçiş yapmaya çalışmamanızı öneririz. Yalnızca önbelleğe alma mantığınızın bir kısmını içeren bir hizmet çalışanı dağıtmak hata olur. "Boşlukları doldurmak" için AppCache'e geri dönemezsiniz.

Benzer şekilde, AppCache kaldırılmadan önce bir hizmet çalışanı dağıtırsanız ve ardından önceki AppCache uygulamanıza geri dönmeniz gerektiğini fark ederseniz bu hizmet çalışanının kaydını silmeniz gerekir. Belirli bir sayfanın kapsamında kayıtlı bir hizmet çalışanı olduğu sürece AppCache kullanılmaz.

Platformlar arası hikaye

AppCache'in kaldırılmasıyla ilgili planları hakkında daha fazla bilgi edinmek isterseniz belirli bir tarayıcı satıcısıyla iletişime geçmenizi öneririz.

Tüm platformlarda Firefox

Firefox, 44. sürümde (Eylül 2015) AppCache'i kullanımdan kaldırdı ve Eylül 2019 itibarıyla Beta ve Nightly derlemelerinde AppCache desteğini kaldırdı.

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 (WKWebView) kullandığı için özel bir durumdur. Service worker'lar şu anda WKWebView kullanan iOS uygulamalarında desteklenmemektedir ve Chrome'un AppCache'i kaldırma duyurusu, iOS için Chrome'da AppCache'in kullanılabilirliğini kapsamamaktadır. Web uygulamanızın iOS için Chrome'da önemli bir kitlesi olduğunu biliyorsanız lütfen bunu göz önünde bulundurun.

Android Web Görünümleri

Android uygulamalarının bazı geliştiricileri, web içeriğini göstermek için Chrome WebView'ı kullanır ve AppCache'i de kullanabilir. Ancak WebView için kaynak denemesi etkinleştirilemez. Bu nedenle, Chrome WebView, Chrome 90'da gerçekleşmesi beklenen nihai kaldırma işlemine kadar AppCache'i kaynak denemesi olmadan destekleyecektir.

Daha fazla bilgi

AppCache'ten service worker'lara geçiş yapan geliştiriciler için bazı kaynakları aşağıda bulabilirsiniz.

Makaleler

Araçlar

Yardım alma

Belirli bir aracı kullanırken sorun yaşarsanız GitHub deposunda sorun kaydı açın.

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

Chrome'un AppCache'i kaldırmasıyla ilgili bir hata ile karşılaşırsanız lütfen Chromium hata izleyicisini kullanarak bildirin.

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