当前位置:首页 > 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 标签实现动态加载

js实现load

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 对象实现图片预加载

js实现load

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 实现图片懒加载

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实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现打印

js实现打印

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

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…