AppCache'i kaldırmaya hazırlanma

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

Önceki duyurular doğrultusunda, AppCache desteği Chrome ve Chromium tabanlı diğer tarayıcılardan kaldırılacaktır. Geliştiricilerin daha fazla beklemeden AppCache'ten geçiş yapması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.

Chrome sürüm planında yapılan 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 şu anda belirli aşamaları beklemek yerine lütfen en kısa sürede AppCache'ten geçiş yapın.

"Desteği sonlandırılan" bir özellik hâlâ mevcuttur ancak kullanımı caydırıcı uyarı mesajları günlüğe kaydeder. "Kaldırıldı" özelliği 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şlıyor Chrome 84 (Temmuz 2020)
Kaynak denemesine katılanlar 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 5 Ekim 2021 (yaklaşık olarak Chrome 95)

Kaynak denemesi

Zaman çizelgesinde, kaldırmayla ilgili iki yaklaşan aşama listelenir. Chrome 85'ten itibaren AppCache, Chrome'da varsayılan olarak kullanılamayacak. AppCache'ten geçiş yapmak için ek süreye ihtiyaç duyan geliştiriciler, web uygulamaları için AppCache'in kullanılabilirliğini uzatmak amacıyla "ters" kaynak denemesine kaydolabilir. Kaynak denemesi Chrome 84'te başlayacak (Chrome 85'te varsayılan olarak kaldırılmadan önce) ve 5 Ekim 2021'e (yaklaşık olarak Chrome 95) kadar etkin olacaktır. Bu tarihten sonra AppCache, orijinal deneme sürümüne 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 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 başlığı aşağıdaki gibi görünmelidir: Origin-Trial: TOKEN_GOES_HERE
  3. AppCache manifest dosyalarınıza aynı jetonu ekleyin. Bunu manifest dosyanızda yeni bir alan ekleyerek aşağıdaki biçimde yapabilirsiniz:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

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

Aşağıda, hem index.html hem de manifest.appcache dosyalarına doğru kaynak deneme jetonlarının eklenmesini gösteren bir örnek proje görebilirsiniz.

Jetonlar neden birden fazla yerde gereklidir?

Aynı kaynak deneme jetonunun aşağıdakilerle 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, her AppCache manifestinizle de bir jeton ilişkilendirmeniz gerektiği için özeldir.

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

Kaynak deneme jetonunu AppCache manifest dosyalarınıza eklemek, her manifest'in hâlâ geçerli olduğunu gösterir. Chrome 85'ten itibaren, ORIGIN-TRIAL alanı bulunmayan manifest'ler hatalı olarak değerlendirilir ve manifest'teki kurallar yoksayılır.

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

"Tersine" kaynak denemesi resmi olarak Chrome 84 ile başlar ancak kaynak denemesine bugün 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 manifestinize bir jeton ekledikten sonra, yerel Chrome örneğinizin (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 deneme sürümünüz tanınırsa bu sayfada manifest dosyanızla ilişkili Token Expires: Tue Apr 06 2021... içeren 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'ten 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 hizmet çalışanları, AppCache tarafından sağlanan çevrimdışı deneyime bir alternatif sunar.

AppCache arayüzünün tamamını değil, yalnızca bazı işlevlerini kopyalamak için bir hizmet çalışanı kullanan bir polyfill sağladık. Özellikle window.applicationCache arayüzü veya ilgili AppCache etkinlikleri için bir alternatif sağlamaz.

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. Diğer bir deyişle, belirli bir sayfayı kontrol eden bir hizmet çalışanı dağıttığınızda artık o sayfada AppCache'i kullanamazsınız.

Bu nedenle, hizmet işçilerine geçişi parça parça yapmamanızı öneririz. Yalnızca önbelleğe alma mantığınızdan bazıları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ı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 sayfanın kapsamında 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ümde (Eylül 2015) AppCache'i desteği sonlandırılan bir özellik olarak kullanıma sundu ve Eylül 2019'dan itibaren Beta ve Nightly sürümlerinde bu özellik için desteği kaldırdı.

iOS ve macOS'te Safari

Safari, 2018'in başlarında AppCache desteğini sonlandı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'i 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ümü

Bazı Android uygulaması geliştiricileri, web içeriğini görüntülemek için Chrome WebView'ü ve AppCache'i de kullanabilir. Ancak WebView için kaynak denemesi etkinleştirilemez. Bu nedenle Chrome WebView, Chrome 90'da yapılması beklenen nihai kaldırma işlemine kadar AppCache'i kaynak denemesi olmadan destekleyecektir.

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 GitHub deposunda bir sorun kaydı açın.

AppCache'ten geçiş hakkında genel bir sorunuzu html5-appcache etiketini kullanarak Stack Overflow'da sorabilirsiniz.

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

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