Yayınlanma tarihi: 10 Ağustos 2023, Son güncelleme tarihi: 11 Mart 2025
unload
etkinliğinin desteği, varsayılan ayar kademeli olarak değiştirilerek sonlandırılacak. Böylece, bir sayfa unload
işleyicilerini yeniden etkinleştirmeyi açıkça seçmediği sürece unload
işleyicileri sayfalarda tetiklenmeyi durduracak.
Kullanımdan kaldırma zaman çizelgesi
Geri/ileri önbelleği uygulama niyetimizi duyurduğumuz Ocak 2019'da, boşaltma davranışının muhtemelen değişikliklere tabi olacağını belirtmiştik. Uygulama çalışmalarına paralel olarak, indirme kullanımının önemli ölçüde düşmesine neden olan geniş kapsamlı bir iletişim çalışması yürüttük. Bu bilgilendirme çalışmasına ek olarak, Chrome 115'te unload işlevinin kullanımdan kaldırılmasının etkisini test etmenin yollarını da sunmaya başladık:
- Chrome 115'te yük boşaltma için Permission-Policy API'yi kullanarak gerçek ortamda test (Temmuz 2023)
- Chrome 117'de bir işaretleme etkinleştirerek yerel test (Eylül 2023)
2024 boyunca, kullanıma sunma sürecinin başlamasını engelleyen çeşitli sorunları giderdik.
unload
etkinliğinin desteğinin sonlandırılmasıyla ilgili zaman çizelgesi aşağıda verilmiştir:
Milestone | Aşama tarihi | En iyi 50 site | Diğer kaynakların yüzdesi |
---|---|---|---|
135 | 26 Mart 2025 | 1 (www.google.com ) |
0 |
136 | 23 Nisan 2025 | 5 | 0 |
137 | 21 Mayıs 2025 | 25 | 0 |
138 | 18 Haziran 2025 | 50 | 0 |
İlk 50 sitenin kullanıma sunulmasını tamamladıktan sonra, bu özelliği bir veya iki aşamada kullanıma sunmak için duraklatacağız. Ardından, önümüzdeki 8 aşamada (veya yaklaşık 32 haftada) bu özelliği tüm kaynaklarda kullanıma sunmak için daha fazla onay alacağız. Bu süreç, yaklaşık olarak aşağıdaki gibi olacaktır:
Milestone | Aşama tarihi | En iyi 50 site | Diğer kaynakların yüzdesi |
---|---|---|---|
140 | 27 Ağustos 2025 | 50 | 1 |
141 | 24 Eylül 2025 | 50 | 5 |
142 | 22 Ekim 2025 | 50 | 10 |
143 | 19 Kasım 2025 | 50 | 20 |
144 | 17 Ocak 2026 | 50 | 40 |
145 | 4 Şubat 2026 | 50 | 60 |
146 | 4 Mart 2026 | 50 | 80 |
147 | 1 Nisan 2026 | 50 | 100 |
Bu desteğin sonlandırılması zaman çizelgesinin, yükleme dışı bırakma özelliğinden geçiş için yeterli süre sağlamaması ihtimaline karşı devre dışı bırakma seçenekleri menüsü de sunduğumuzu unutmayın. Amacımız, bu kapsam dışında kalmayı seçen özelliklerin kaldırılacağı veya azaltılacağı son aşamanın zaman çizelgesini (yük boşaltmanın kullanımdan kaldırılması) bildirmek için bu desteği sonlandırmayı kullanmaktır.

Arka plan
unload
, doküman yüklenirken tetiklenecek şekilde tasarlanmıştır. Teorik olarak, kullanıcı bir sayfadan ayrıldığında veya oturum sonu geri çağırma olarak kod çalıştırmak için kullanılabilir.
Bu etkinliğin en yaygın olarak kullanıldığı senaryolar şunlardır:
- Kullanıcı verilerini kaydetme: Sayfadan ayrılmadan önce verileri kaydedin.
- Temizleme görevlerini gerçekleştirme: Sayfayı terk etmeden önce açık kaynakları kapatma.
- Analizler gönderme: Oturum sonunda kullanıcı etkileşimleriyle ilgili verileri gönderme.
Ancak unload
etkinliği son derece güvenilir değildir.
Masaüstü Chrome ve Firefox'ta unload
oldukça güvenilirdir ancak bfcache (geri/ileri önbelleği) kullanımını engelleyerek sitenin performansını olumsuz etkiler.
Sekmeler sık sık arka plana alındıktan sonra sonlandırıldığı için mobil tarayıcılarda unload
genellikle çalışmaz. Bu nedenle tarayıcılar, mobil cihazlarda unload
yerine bfcache'e öncelik vermeyi tercih eder. Bu da tarayıcıların daha da güvenilmez olmasını sağlar. Safari, bu davranışı masaüstünde de kullanır.
Chrome ekibi, masaüstünde bfcache'e unload
yerine öncelik veren mobil modeli kullanmak, daha önce Chrome'da (ve Firefox'ta) makul düzeyde güvenilir olan bu özelliği masaüstünde de daha güvenilmez hale getirerek bozucu olacağını düşünüyor. Bunun yerine Chrome'un amacı, unload
etkinliğini tamamen kaldırmaktır. Bu tarihe kadar, desteğin sonlandırılmasını açıkça devre dışı bırakanlar masaüstünde bu özelliği güvenle kullanabilir.
unload
etkinliğinin desteği neden sonlandırılıyor?
unload
desteğinin sonlandırılması, içinde yaşadığımız web'in çok daha geniş bir şekilde tanınması için önemli bir adımdır. unload
etkinliği, uygulama yaşam döngüsü üzerinde yanlış bir kontrol hissi verir. Bu durum, modern bilgisayar dünyasında web'e göz atma şeklimizle giderek daha alakasız hale geliyor.
Mobil işletim sistemleri, bellek tasarrufu yapmak için web sayfalarını sık sık dondurur veya sayfaları kaldırır. Masaüstü tarayıcılar da aynı nedenlerle artık bunu giderek daha fazla yapıyor. İşletim sistemi müdahalesi olmadan bile kullanıcılar, "sayfalardan ayrılmadan" sekme değiştirip eski sekmeleri kapatır.
unload
etkinliğinin kullanımdan kaldırılması, web geliştiricileri olarak paradigmamızın gerçek dünyayla eşleştiğinden emin olmamız ve artık geçerliliğini yitirmiş eski kavramlara (eğer geçerliydilerse) bağlı kalmamamız gerektiğinin kabulü anlamına gelir.
unload
etkinliklerine alternatifler
unload
yerine şunları kullanmanız önerilir:
visibilitychange
: Bir sayfanın görünürlüğünün ne zaman değiştiğini belirlemek için. Bu etkinlik, kullanıcı sekme değiştirdiğinde, tarayıcı penceresini en aza indirdiğinde veya yeni bir sayfa açtığında gerçekleşir. Uygulama ve kullanıcı verilerini kaydetmek için son güvenilir zamanıhidden
durumunu göz önünde bulundurun.pagehide
: Kullanıcının sayfadan ne zaman ayrıldığını belirlemek için. Bu etkinlik, kullanıcı sayfadan ayrıldığında, sayfayı yeniden yüklediğinde veya tarayıcı penceresini kapattığında gerçekleşir. Sayfa küçültüldüğünde veya başka bir sekmeye geçiş yapıldığındapagehide
etkinliği tetiklenmez.pagehide
, sayfayı geri/ileri önbelleğe uygun hale getirmediğinden, bu etkinlik tetiklendikten sonra sayfanın geri yüklenebileceğini unutmayın. Bu etkinlikte temizlik yapıyorsanız sayfayı geri yüklerken bu kaynakların da geri yüklenmesi gerekebilir.
beforeunload
etkinliğinin, iptal edilebilir bir etkinlik olması nedeniyle unload
etkinliğinden biraz farklı bir kullanım alanı vardır. Bu mesaj, genellikle kullanıcıları sayfadan ayrılırken kaydedilmemiş değişiklikler konusunda uyarmak için kullanılır. Arka plan sekmesi kapatılırsa tetiklenmeyeceği için bu etkinlik de güvenilir değildir. beforeunload
'ün kullanımını sınırlamanız ve yalnızca koşullu olarak eklemeniz önerilir. Bunun yerine, çoğu unload
değişimi için daha önce belirtilen etkinlikleri kullanın.
Daha fazla bilgi için unload
işleyicisini hiçbir zaman kullanmama hakkındaki bu tavsiyeye göz atın.
unload
kullanımını algılama
unload
etkinliğinin sayfalarda nerede göründüğünü bulmanıza yardımcı olacak çeşitli araçlar vardır. Bu sayede siteler, bu etkinliği kendi kodlarında veya kitaplıklarda kullanıp kullanmadıklarını ve bu nedenle yakında kullanımdan kaldırılacak olan bu durumdan etkilenip etkilenmeyeceklerini keşfedebilir.
Chrome Geliştirici Araçları
Chrome Geliştirici Araçları, unload
işleyicisinin kullanımı da dahil olmak üzere sayfanızı geri/ileri önbelleğe almaya uygun olmasını engelleyebilecek sorunları belirlemenize yardımcı olmak için bir back-forward-cache
denetimi içerir.
Geri/ileri önbelleği test etmek için aşağıdaki adımları uygulayın:
Sayfanızda Geliştirici Araçları'nı açın, ardından Uygulama > Arka plan hizmetleri > Geri/ileri önbelleği'ne gidin.
Geri/ileri önbelleği test et'i tıklayın. Chrome sizi otomatik olarak
chrome://terms/
sayfasına ve ardından sayfanıza geri götürür. Alternatif olarak, tarayıcının geri ve ileri düğmelerini de tıklayabilirsiniz.
Sayfanız geri/ileri önbelleğe alınmaya uygun değilse Geri/ileri önbelleğe alma sekmesinde sorunların listesi gösterilir. İşlenebilir bölümünde, unload
'yi kullanıp kullanmadığınızı görebilirsiniz:

Reporting API
Reporting API, web sitesi kullanıcılarınız tarafından unload
kullanımının algılanması için salt okunur bir izin politikasıyla birlikte kullanılabilir.
Daha fazla bilgi için Boşaltma işlemlerini bulmak için Reporting API'yi kullanma başlıklı makaleyi inceleyin.
Bfcache notRestoredReasons
API
PerformanceNavigationTiming
sınıfına eklenen notRestoredReasons
mülkü, dokümanların gezinme sırasında bfcache kullanmasının engellenip engellenmediği ve neden engellendiğini bildirir. Aşağıda, mevcut bir unload
dinleyicinin yanıt nesnesi uyarısının nasıl göründüğüne dair bir örnek verilmiştir:
{
children: [],
id: null,
name: null,
reasons: [
{"reason", "unload-listener"}
],
src: null,
url: "https://www.example.com/page/"
}
unload
'a erişimi kontrol etme
Chrome, unload
etkinliğinin desteğini kademeli olarak sonlandıracak. Bu süre zarfında bu davranışı kontrol etmek ve desteğin sonlandırılmasına hazırlanmak için farklı araçlar kullanabilirsiniz. Bu tekniklere uzun vadede güvenmemenizi ve en kısa sürede alternatiflere geçmeyi planlamanızı öneririz.
Aşağıdaki seçenekler, sitenizin bu işleyiciler olmadan nasıl çalışacağını test etmek için unload
işleyicilerini etkinleştirmenize veya devre dışı bırakmanıza olanak tanır. Böylece, desteğin sonlandırılmasına hazırlanabilirsiniz. Farklı politika türleri vardır:
- İzin Politikası: Site sahiplerinin, HTTP üstbilgilerini kullanarak site veya tek bir sayfa düzeyinde özelliklere erişimi kontrol etmesine olanak tanıyan bir platform API'sidir.
- Kuruluş politikaları: BT yöneticilerinin Chrome'u kuruluşları veya işletmeleri için yapılandırabileceği araçlar. Google Yönetici Konsolu gibi bir yönetici paneli kullanılarak yapılandırılabilir.
- Chrome işaretleri: Bu, geliştiricilerin
unload
desteği sonlandırma ayarını değiştirerek çeşitli sitelerdeki etkiyi test etmesine olanak tanır.
İzin Politikası
Sitelerin unload
işleyicilerini kullanmayı devre dışı bırakmasına ve site performansını iyileştirmek için bfcache'ten hemen yararlanmasına olanak tanımak amacıyla Chrome 115'ten itibaren bir izin politikası eklendi. Bu ayarı siteniz için nasıl yapacağınızla ilgili örnekleri inceleyin. Bu sayede siteler, unload
desteğinin sonlandırılmasından önce hazırlık yapabilir.
Chrome, unload
işleyicilerinin gelecekte tetiklenmemesi için varsayılan ayarı değiştirdiğinden, bu Chrome 117'de genişletilecek ve sitelerin tam tersini yapmasına, unload
işleyicilerini tetiklemeye devam etmeyi etkinleştirmesine olanak tanıyacak. Siteniz için boşaltma işleyicilerinin tetiklenmesine nasıl izin vermeye devam edeceğinizle ilgili bu örneklere göz atın. Bu etkinleştirme işlemi sonsuza kadar geçerli olmayacak ve sitelerin unload
işleyicilerinden taşınması için zaman tanımak amacıyla kullanılmalıdır.
Enterprise politikası
Doğru şekilde çalışması için unload
etkinliğine bağlı yazılımlara sahip olan kuruluşlar, kontrollerindeki cihazlarda desteğin kademeli olarak sonlandırılmasını önlemek için ForcePermissionPolicyUnloadDefaultEnabled
politikasını kullanabilir. Bu politika etkinleştirildiğinde unload
, tüm kaynaklar için varsayılan olarak etkin olmaya devam eder. Ancak sayfalar isterse daha katı bir politika belirleyebilir. İzinler Politikası kapsamı dışında kalma seçeneği gibi bu da, önemli değişikliklerin olası etkilerini azaltmaya yönelik bir araçtır ancak süresiz olarak kullanılmamalıdır.
Chrome işaretleri ve komut satırı anahtarları
Enterprise politikasının yanı sıra, Chrome işaretlerini ve komut satırı anahtarlarını kullanarak desteğin sonlandırılmasını tek tek kullanıcılar için devre dışı bırakabilirsiniz:
chrome://flags/#deprecate-unload
Bu değeri enabled
olarak ayarlamak, desteğin sonlandırılmasına ilişkin varsayılan ayarı öne çıkarır ve unload
işleyicilerinin tetiklenmesini engeller. İzinler Politikası kullanılarak site bazında yine de geçersiz kılınabilir ancak varsayılan olarak etkin olmaya devam eder.
Bu ayarlar komut satırı anahtarları ile de kontrol edilebilir.
Seçenekleri karşılaştırma
Aşağıdaki tabloda, daha önce bahsedilen seçeneklerin farklı kullanımları özetlenmiştir:
Desteği sonlandırma tarihini öne alma | Kullanımdan kaldırma tarihini öne alma (istisnalar hariç) | Taşıma işlemi için zaman kazanmak amacıyla desteğin sonlandırılmasını önleme | |
---|---|---|---|
İzinler Politikası (sayfalar/siteler için geçerlidir) |
Evet | Evet | Evet |
Kurumsal politika (cihazlar için geçerlidir) |
Hayır | Hayır | Evet |
Chrome flag'leri (her kullanıcı için geçerlidir) |
Evet | Hayır | Hayır |
Chrome komut satırı anahtarları (her kullanıcı için geçerlidir) |
Evet | Hayır | Evet |
Sonuç
unload
işleyicilerin desteği sonlandırılıyor. Bu e-postalar uzun süredir güvenilir değildir ve bir dokümanın silindiği tüm durumlarda gönderileceği garanti edilmez. Ayrıca, unload
işleyicileri bfcache ile uyumlu değildir.
unload
işleyicileri kullanan siteler, mevcut unload
işleyicileri test ederek, kaldırarak veya taşıyarak ya da son çare olarak daha fazla zamana ihtiyaç duyuyorsa desteğin sonlandırılmasını erteleyerek bu desteğin sonlandırılmasına hazırlanmalıdır.
Teşekkür ederiz
Bu makalenin incelenmesine yardımcı olan Kenji Baheux, Fergal Daly, Adriana Jara ve Jeremy Wagner'a teşekkür ederiz.
Unsplash'ta Anja Bauermann tarafından oluşturulan hero resim