अधिकांश खोज इंजन छवियों को अनुक्रमित करेंगे जो तब तक छिपे रहते हैं जब तक आप छवि को छिपाने के लिए इनलाइन शैलियों का उपयोग नहीं करते हैं। अधिकांश ब्राउज़र छिपी हुई छवियों को लोड नहीं करेंगे ।
एक परीक्षण पृष्ठ है जो इस दावे को सत्यापित कर सकता है। कुछ पुराने मोबाइल ब्राउज़र अपवाद हैं, लेकिन मेरा तर्क है कि मोबाइल फोन पर आलसी लोडिंग एक अच्छा ब्राउज़िंग अनुभव के लिए उत्पादक हो सकता है।
http://www.w3.org/2009/03/image-display-none/test.php
अपनी CSS फ़ाइल में निम्न संशोधन जोड़ें।
.lazy-img { display: none; }
अब आप इस तरह आलसी चित्रों के साथ एक पेज लोड कर सकते हैं और उन्हें अनुक्रमित किया जाएगा।
<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
छवि के लिए विशेषता शामिल करें । या आप <img
लिंक <a
> टैग और लिंक टेक्स्ट के साथ> टैग को घेरते हैं । अन्यथा सर्च इंजन शब्द दूरी के आधार पर कीवर्ड को इमेज के साथ जोड़ देगा। आप एसईओ के लिए यह सब मुसीबत के लिए जा रहे हैं आप सभी तरह से जा सकते हैं।
यदि आप उपरोक्त का उपयोग करें। कुछ भी नहीं दिखाएगा क्योंकि चित्र छिपे हुए हैं। आप दस्तावेज़ के निचले भाग में इस वर्ग को हटाना चाहते हैं। यहाँ कुंजी इनलाइन शुद्ध जावास्क्रिप्ट का उपयोग करना है। उपरोक्त तत्वों के लेआउट समाप्त होने के तुरंत बाद इस जावास्क्रिप्ट को निष्पादित किया जाता है। यदि आप अपनी सभी बाहरी जेएस फाइलों को नीचे की ओर लोड करते हैं (जैसा कि आपको करना चाहिए)। आपको उन फ़ाइलों के ऊपर इस जावास्क्रिप्ट ब्लॉक को रखना चाहिए। ताकि DOM को मॉडिफाई करने में कोई भी लैग न हो।
<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>
अब मैंने IE9 के लिए सशर्त जोड़े क्योंकि यह getElementsByClassName
8 और पुराने में समर्थन नहीं करता है । क्या होना चाहिए (परीक्षण नहीं किया गया) यह है कि उन ब्राउज़रों को छवि को बस के रूप में लोड किया जाएगा।
इस दृष्टिकोण का लाभ यह है कि यह HTML को वेबक्रॉलर के दृष्टिकोण से साफ दिखता है।