Lazy loading, web performansını artıran ve kullanıcı deneyimini iyileştiren bir tekniktir. Sayfalar daha hızlı yüklenir ve gereksiz veri transferi azaltılır.
Web sitenizin hızının, kullanıcı deneyimi üzerinde doğrudan bir etkisi vardır. İnternet kullanıcıları, yavaş açılan web sayfalarından hızla uzaklaşabilir. Bu nedenle, web performansını artırmak ve ziyaretçi memnuniyetini sağlamak için çeşitli yöntemler kullanılabilir. Bunlardan biri de lazy loading (tembel yükleme) tekniğidir. Lazy loading, sayfa içerikleri yüklenmeden önce, yalnızca kullanıcının görsel olarak etkileşimde bulunacağı öğelerin yüklenmesini sağlayarak, sayfa hızını önemli ölçüde artırır.
Lazy loading, web sayfasında bulunan içeriklerin yalnızca kullanıcı bu içeriği görmeye başladığında yüklenmesini sağlayan bir tekniktir. Bu, özellikle büyük medya dosyaları (görseller, videolar vb.) veya sayfa içeriği yoğun olan siteler için büyük bir avantaj sağlar. Temelde, sayfa yüklenmeye başladığında sadece ilk görünür içerik yüklenir ve geri kalan içerikler kullanıcı sayfayı kaydırdıkça (scroll) yüklenir.
Lazy loading uygulamanın web performansına sağladığı faydalar şunlardır:
Lazy loading uygulamasını gerçekleştirmek için birkaç farklı yöntem ve teknoloji kullanılabilir. İşte en yaygın yöntemler:
Lazy loading genellikle görsellerin yüklenmesinde yaygın olarak kullanılır. Görsel etiketine loading=”lazy” özelliğini eklemek, modern tarayıcılar için lazy loading’i etkinleştirir. İşte basit bir örnek:
<img src="resim.jpg" alt="Örnek Görsel" loading="lazy">
Bu şekilde, sayfa yüklendiğinde sadece görünür olan görseller yüklenecek ve kullanıcı sayfayı kaydırdıkça diğer görseller yüklenecektir.
JavaScript ile daha gelişmiş bir lazy loading uygulaması yapılabilir. Bu, özellikle daha karmaşık içerikler veya dışa bağlı medya öğeleri için uygundur. Aşağıda bir JavaScript ile lazy loading örneği bulunmaktadır:
document.addEventListener('DOMContentLoaded', function() {
let images = document.querySelectorAll('img[data-src]');
const loadImage = (image) => {
image.src = image.dataset.src;
image.removeAttribute('data-src');
};
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
loadImage(entry.target);
observer.unobserve(entry.target);
}
});
}, { threshold: 0.5 });
images.forEach(image => {
observer.observe(image);
});
});
Bu kod, sayfa yüklendikçe ve görseller görünür oldukça görselleri yükler.
Lazy loading sadece görseller için değil, videolar gibi medya öğeleri için de kullanılabilir. Videoların yalnızca kullanıcı izlemeye karar verdiğinde yüklenmesi, sayfa hızını artırır. HTML5 video etiketi ile lazy loading yapmak için aşağıdaki örnek kullanılabilir:
<video controls>
<source src="video.mp4" type="video/mp4" loading="lazy">
Tarayıcınız video etiketini desteklemiyor.
</video>
Lazy loading tekniğini uygularken aşağıdaki ipuçlarına dikkat etmek, en verimli sonucu elde etmenize yardımcı olacaktır:
Lazy loading, modern web siteleri için performans artırıcı bir tekniktir. Hem masaüstü hem de mobil cihazlarda web sayfalarının daha hızlı yüklenmesini sağlar ve kullanıcı deneyimini iyileştirir. Görsellerin, videoların ve diğer medya öğelerinin sadece ihtiyaç duyulduğunda yüklenmesi, hem verimliliği artırır hem de sayfa hızını hızlandırır. Lazy loading’i doğru bir şekilde uygulayarak, web sitenizin hızını önemli ölçüde artırabilir ve kullanıcılarınızın memnuniyetini sağlayabilirsiniz.