当前位置:首页 > JavaScript

js实现load

2026-04-06 16:03:11JavaScript

使用原生 JavaScript 实现 load 功能

通过 window.onloadDOMContentLoaded 事件监听页面加载完成

window.onload = function() {
  // 页面所有资源(图片、脚本等)加载完成后执行
  console.log('Page fully loaded');
};

document.addEventListener('DOMContentLoaded', function() {
  // DOM 解析完成后立即执行,无需等待样式表/图片加载
  console.log('DOM fully parsed');
});

动态加载脚本资源

使用 document.createElement 方法创建 script 标签实现动态加载

function loadScript(url, callback) {
  const script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = url;

  script.onload = function() {
    if (callback) callback();
  };

  document.head.appendChild(script);
}

// 使用示例
loadScript('https://example.com/script.js', function() {
  console.log('Script loaded');
});

图片预加载实现

创建 Image 对象实现图片预加载

function preloadImage(url) {
  const img = new Image();
  img.src = url;

  return new Promise((resolve, reject) => {
    img.onload = () => resolve(img);
    img.onerror = () => reject(new Error(`Failed to load ${url}`));
  });
}

// 使用示例
preloadImage('https://example.com/image.jpg')
  .then(img => {
    document.body.appendChild(img);
  })
  .catch(console.error);

使用 Fetch API 加载数据

通过现代 Fetch API 实现异步数据加载

function loadData(url) {
  return fetch(url)
    .then(response => {
      if (!response.ok) throw new Error('Network response was not ok');
      return response.json();
    });
}

// 使用示例
loadData('https://api.example.com/data')
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

懒加载实现方案

Intersection Observer API 实现图片懒加载

js实现load

function lazyLoadImages() {
  const lazyImages = document.querySelectorAll('img[data-src]');

  const observer = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        const img = entry.target;
        img.src = img.dataset.src;
        observer.unobserve(img);
      }
    });
  });

  lazyImages.forEach(img => observer.observe(img));
}

// 初始化懒加载
document.addEventListener('DOMContentLoaded', lazyLoadImages);

标签: jsload
分享给朋友:

相关文章

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…