Çoğu arama motoru, görüntüyü gizlemek için satır içi stilleri kullanmadığınız sürece gizlenen görüntüleri dizine ekler. Tarayıcılar çoğunluğu olacak değil gizli görüntüleri yüklemek.
Bu talebi doğrulayabilecek bir test sayfası var. Bazı eski mobil tarayıcılar istisna olmakla birlikte, cep telefonlarına yapılan tembel yükleme işlemlerinin iyi bir tarama deneyimi için üretken olabileceğini savunuyorum.
http://www.w3.org/2009/03/image-display-none/test.php
CSS dosyanızda aşağıdaki değişiklikleri ekleyin.
.lazy-img { display: none; }
Şimdi bunun gibi tembel resimlerin olduğu bir sayfa yükleyebilir ve dizine eklenirler.
<body>
<img class="lazy-img" src="img1.jpeg" title="image title"/>
<img class="lazy-img" src="img2.jpeg" title="image title"/>
<img class="lazy-img" src="img3.jpeg" title="image title"/>
<img class="lazy-img" src="img4.jpeg" title="image title"/>
</body>
title
Resmin niteliğini eklemeniz önemlidir . Veya <img
> etiketini bir linkle <a
> etiketle ve metinle çevreleyin . Aksi halde, arama motorları anahtar kelimeleri resimle kelime mesafesine göre ilişkilendirir. SEO için tüm bu belaya gidersiniz, yol boyunca da devam edebilirsiniz.
Yukarıdakileri olduğu gibi kullanırsanız. Görüntüler gizlendiğinden hiçbir şey gösterilmez. Belgenin altındaki bu sınıfı kaldırmak istiyorsunuz. Buradaki anahtar satır içi saf Javascript kullanmaktır. Bu Javascript, yukarıdaki elemanların yerleşiminin tamamlanmasından hemen sonra yürütülür. Tüm harici JS dosyalarınızı alttan yüklerseniz (olması gerektiği gibi). Bu Javascript bloğunu bu dosyaların üzerine yerleştirmelisiniz. Böylece DOM’nin değiştirilmesinde gecikme olmaz.
<body>
<!--[if lte IE 8]
<style type="text/css">.lazy-img { display: block !important; }</style>
[endif]-->
<noscript><style type="text/css">.lazy-img { display: block !important; }</style></noscript>
<img class="lazy-img" src="img1.jpeg" title="image title"/>
<img class="lazy-img" src="img2.jpeg" title="image title"/>
<img class="lazy-img" src="img3.jpeg" title="image title"/>
<img class="lazy-img" src="img4.jpeg" title="image title"/>
<![if gte IE 9]>
<script type="text/javascript">
var images = document.getElementsByClassName('lazy-img');
Array.prototype.forEach.call(images, function(image){
image.setAttribute("data-src",image.getAttribute("src"));
image.setAttribute("src","loading.gif");
});
while(images.length > 0) { images[0].className = ""; }
</script>
<![endif]>
</body>
Şimdi getElementsByClassName
8 ve daha eski sürümlerde desteklemediği için IE9 için koşul ekledim . Olması gereken (test edilmemiş), bu tarayıcıların görüntüyü olduğu gibi yükleyeceğidir.
Bu yaklaşımın avantajı, web tarayıcısının perspektifinden HTML’nin temiz görünmesini sağlar.