Lazy loading is a web optimization technique that delays the loading of non-critical resources until they are actually needed. Instead of loading all images and videos at once during the initial page load, lazy loading only fetches them when they appear in (or near) the user’s viewport.Lazy loading is a web optimization technique that delays the loading of non-critical resources until they are actually needed. Instead of loading all images and videos at once during the initial page load, lazy loading only fetches them when they appear in (or near) the user’s viewport.

How to Implement Lazy Loading Images and Videos in JavaScript

Website performance has become a critical ranking factor for search engines and a key driver of user experience. When a site loads slowly, visitors are more likely to leave before engaging with the content. One of the biggest culprits behind sluggish websites is heavy media - especially images and videos. Fortunately, lazy loading provides an efficient way to improve page speed without sacrificing visual quality.

\ In this article, we’ll explore what lazy loading is, why it matters, and how you can implement it for images and videos using JavaScript.

What Is Lazy Loading?

Lazy loading is a web optimization technique that delays the loading of non-critical resources until they are actually needed. Instead of loading all images and videos at once during the initial page load, lazy loading only fetches them when they appear in (or near) the user’s viewport.

\ For example, if your page has 20 images but only 3 are visible when the visitor first lands on the page, lazy loading ensures that only those 3 images are loaded initially. The rest are downloaded only when the user scrolls down.

\ The result? Faster load times, reduced bandwidth usage, and a smoother browsing experience.

Native Lazy Loading With HTML

Before diving into JavaScript, it’s worth mentioning that modern browsers support a native lazy loading attribute for images and iframes.

<img src="image.jpg" alt="Example" loading="lazy"> <iframe src="video.html" loading="lazy"></iframe> 

\ This is the easiest solution because it requires no extra code. However, not all browsers fully support it, and it may lack customization options. That’s where JavaScript comes in.

Lazy Loading Images With JavaScript

One of the most reliable ways to implement lazy loading is with the Intersection Observer API. This API lets you detect when elements enter or exit the viewport, making it ideal for conditional loading of resources.

Step 1: Update Your HTML

Instead of placing the image URL in the src attribute, you store it in a data-src attribute.

<img data-src="image.jpg" alt="Lazy loaded example" class="lazy-image"> 

Step 2: Add JavaScript Code

document.addEventListener("DOMContentLoaded", function () { &nbsp;&nbsp;const lazyImages = document.querySelectorAll("img.lazy-image"); &nbsp;&nbsp;const imageObserver = new IntersectionObserver((entries, observer) => { &nbsp;&nbsp;&nbsp;&nbsp;entries.forEach(entry => { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (entry.isIntersecting) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const img = entry.target; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.src = img.dataset.src; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.classList.remove("lazy-image"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;observer.unobserve(img); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;}); &nbsp;&nbsp;lazyImages.forEach(img => { &nbsp;&nbsp;&nbsp;&nbsp;imageObserver.observe(img); &nbsp;&nbsp;}); }); 

\ Here’s what happens:

  • The script looks for all images with the class lazy-image.
  • When an image scrolls into view, its data-src is transferred into src.
  • The observer then stops tracking that image.

Lazy Loading Videos With JavaScript

Videos and embedded iframes (like YouTube) are even heavier than images, making them prime candidates for lazy loading.

Step 1: Update Your HTML

<iframe data-src="https://www.youtube.com/embed/VIDEO_ID"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class="lazy-video"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width="560" height="315"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frameborder="0" allowfullscreen></iframe> 

\ Notice that the src attribute has been replaced by data-src.

Step 2: Add JavaScript Code

document.addEventListener("DOMContentLoaded", function () { &nbsp;&nbsp;const lazyVideos = document.querySelectorAll("iframe.lazy-video"); &nbsp;&nbsp;const videoObserver = new IntersectionObserver((entries, observer) => { &nbsp;&nbsp;&nbsp;&nbsp;entries.forEach(entry => { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (entry.isIntersecting) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const video = entry.target; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;video.src = video.dataset.src; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;video.classList.remove("lazy-video"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;observer.unobserve(video); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;}); &nbsp;&nbsp;lazyVideos.forEach(video => { &nbsp;&nbsp;&nbsp;&nbsp;videoObserver.observe(video); &nbsp;&nbsp;}); }); 

\ When the user scrolls near the video, the actual YouTube (or Vimeo) URL is loaded, saving precious loading time.

Fallback for Older Browsers

If you need to support older browsers that don’t have the Intersection Observer API, you can fall back to using the scroll event:

function lazyLoad() { &nbsp;&nbsp;const lazyElements = document.querySelectorAll("[data-src]"); &nbsp;&nbsp;lazyElements.forEach(el => { &nbsp;&nbsp;&nbsp;&nbsp;if (el.getBoundingClientRect().top < window.innerHeight + 200) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.src = el.dataset.src; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.removeAttribute("data-src"); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;}); } window.addEventListener("scroll", lazyLoad); window.addEventListener("resize", lazyLoad); window.addEventListener("orientationchange", lazyLoad); 

This checks the element’s position relative to the viewport and loads it when it’s close to being visible.

Best Practices for Lazy Loading

  • Do not lazy load above-the-fold images: These should load instantly to avoid delays in the initial render.
  • Combine with modern image formats: Use WebP or AVIF for smaller file sizes.
  • Test with performance tools: Google PageSpeed Insights and Lighthouse can help you measure improvements.
  • Provide placeholders: Use a small blurred image or a loading animation to prevent layout shifts.

\ Tip: Optimizing user experience doesn’t stop with media. Even small enhancements, like interactive maps, can make a difference. For a more detailed guide on image loading techniques, you can check out this resource.

SEO and User Experience Benefits

Beyond performance, lazy loading can also improve your site’s SEO and engagement metrics. Since Google now considers page speed and Core Web Vitals as ranking factors, reducing unnecessary resource loading gives your site a better chance at ranking higher in search results.

\ At the same time, users benefit from a faster, smoother browsing experience, which reduces bounce rates and encourages them to stay longer on your site. In short, lazy loading is not just a technical improvement—it’s a competitive advantage.

Conclusion

Lazy loading is one of the simplest yet most effective techniques for improving website speed and user experience. By implementing lazy loading for images and videos using JavaScript, you reduce initial page load time, save bandwidth, and create a smoother browsing experience for your visitors.

\ Whether you rely on native HTML attributes or a JavaScript-based approach, this optimization is a must-have for modern web development.

Market Opportunity
NEAR Logo
NEAR Price(NEAR)
$1.547
$1.547$1.547
-0.96%
USD
NEAR (NEAR) Live Price Chart
Disclaimer: The articles reposted on this site are sourced from public platforms and are provided for informational purposes only. They do not necessarily reflect the views of MEXC. All rights remain with the original authors. If you believe any content infringes on third-party rights, please contact service@support.mexc.com for removal. MEXC makes no guarantees regarding the accuracy, completeness, or timeliness of the content and is not responsible for any actions taken based on the information provided. The content does not constitute financial, legal, or other professional advice, nor should it be considered a recommendation or endorsement by MEXC.

You May Also Like

Google's AP2 protocol has been released. Does encrypted AI still have a chance?

Google's AP2 protocol has been released. Does encrypted AI still have a chance?

Following the MCP and A2A protocols, the AI Agent market has seen another blockbuster arrival: the Agent Payments Protocol (AP2), developed by Google. This will clearly further enhance AI Agents' autonomous multi-tasking capabilities, but the unfortunate reality is that it has little to do with web3AI. Let's take a closer look: What problem does AP2 solve? Simply put, the MCP protocol is like a universal hook, enabling AI agents to connect to various external tools and data sources; A2A is a team collaboration communication protocol that allows multiple AI agents to cooperate with each other to complete complex tasks; AP2 completes the last piece of the puzzle - payment capability. In other words, MCP opens up connectivity, A2A promotes collaboration efficiency, and AP2 achieves value exchange. The arrival of AP2 truly injects "soul" into the autonomous collaboration and task execution of Multi-Agents. Imagine AI Agents connecting Qunar, Meituan, and Didi to complete the booking of flights, hotels, and car rentals, but then getting stuck at the point of "self-payment." What's the point of all that multitasking? So, remember this: AP2 is an extension of MCP+A2A, solving the last mile problem of AI Agent automated execution. What are the technical highlights of AP2? The core innovation of AP2 is the Mandates mechanism, which is divided into real-time authorization mode and delegated authorization mode. Real-time authorization is easy to understand. The AI Agent finds the product and shows it to you. The operation can only be performed after the user signs. Delegated authorization requires the user to set rules in advance, such as only buying the iPhone 17 when the price drops to 5,000. The AI Agent monitors the trigger conditions and executes automatically. The implementation logic is cryptographically signed using Verifiable Credentials (VCs). Users can set complex commission conditions, including price ranges, time limits, and payment method priorities, forming a tamper-proof digital contract. Once signed, the AI Agent executes according to the conditions, with VCs ensuring auditability and security at every step. Of particular note is the "A2A x402" extension, a technical component developed by Google specifically for crypto payments, developed in collaboration with Coinbase and the Ethereum Foundation. This extension enables AI Agents to seamlessly process stablecoins, ETH, and other blockchain assets, supporting native payment scenarios within the Web3 ecosystem. What kind of imagination space can AP2 bring? After analyzing the technical principles, do you think that's it? Yes, in fact, the AP2 is boring when it is disassembled alone. Its real charm lies in connecting and opening up the "MCP+A2A+AP2" technology stack, completely opening up the complete link of AI Agent's autonomous analysis+execution+payment. From now on, AI Agents can open up many application scenarios. For example, AI Agents for stock investment and financial management can help us monitor the market 24/7 and conduct independent transactions. Enterprise procurement AI Agents can automatically replenish and renew without human intervention. AP2's complementary payment capabilities will further expand the penetration of the Agent-to-Agent economy into more scenarios. Google obviously understands that after the technical framework is established, the ecological implementation must be relied upon, so it has brought in more than 60 partners to develop it, almost covering the entire payment and business ecosystem. Interestingly, it also involves major Crypto players such as Ethereum, Coinbase, MetaMask, and Sui. Combined with the current trend of currency and stock integration, the imagination space has been doubled. Is web3 AI really dead? Not entirely. Google's AP2 looks complete, but it only achieves technical compatibility with Crypto payments. It can only be regarded as an extension of the traditional authorization framework and belongs to the category of automated execution. There is a "paradigm" difference between it and the autonomous asset management pursued by pure Crypto native solutions. The Crypto-native solutions under exploration are taking the "decentralized custody + on-chain verification" route, including AI Agent autonomous asset management, AI Agent autonomous transactions (DeFAI), AI Agent digital identity and on-chain reputation system (ERC-8004...), AI Agent on-chain governance DAO framework, AI Agent NPC and digital avatars, and many other interesting and fun directions. Ultimately, once users get used to AI Agent payments in traditional fields, their acceptance of AI Agents autonomously owning digital assets will also increase. And for those scenarios that AP2 cannot reach, such as anonymous transactions, censorship-resistant payments, and decentralized asset management, there will always be a time for crypto-native solutions to show their strength? The two are more likely to be complementary rather than competitive, but to be honest, the key technological advancements behind AI Agents currently all come from web2AI, and web3AI still needs to keep up the good work!
Share
PANews2025/09/18 07:00
Zama to Conduct Sealed-Bid Dutch Auction Using Encryption Tech

Zama to Conduct Sealed-Bid Dutch Auction Using Encryption Tech

Zama unveils innovative public token auction, using proprietary encryption. Bidding begins January 21, 2026. Key details on protocol and market impact.Read more
Share
Coinstats2026/01/20 18:13
Fed Finally Cuts Interest Rates – Crypto Boom is About to Begin

Fed Finally Cuts Interest Rates – Crypto Boom is About to Begin

The federal funds rate now stands in a range of 4.00% to 4.25%, a level that reflects a delicate balancing […] The post Fed Finally Cuts Interest Rates – Crypto Boom is About to Begin appeared first on Coindoo.
Share
Coindoo2025/09/18 02:01