当前位置:首页 > JavaScript

js实现图片预加载

2026-01-30 10:32:28JavaScript

实现图片预加载的 JavaScript 方法

使用 Image 对象预加载

创建一个 Image 对象并设置其 src 属性,浏览器会自动缓存加载的图片资源。可以通过监听 onloadonerror 事件判断加载状态。

function preloadImage(url) {
  const img = new Image();
  img.src = url;
  img.onload = () => console.log(`Loaded: ${url}`);
  img.onerror = () => console.error(`Failed: ${url}`);
}

// 示例
preloadImage('https://example.com/image.jpg');

批量预加载多张图片

通过数组存储图片 URL,循环调用预加载函数。

const imageUrls = [
  'https://example.com/image1.jpg',
  'https://example.com/image2.png'
];

imageUrls.forEach(url => preloadImage(url));

使用 Promise 优化异步加载

结合 Promise 实现更可控的异步加载逻辑,支持链式调用或 async/await

js实现图片预加载

function preloadWithPromise(url) {
  return new Promise((resolve, reject) => {
    const img = new Image();
    img.src = url;
    img.onload = () => resolve(url);
    img.onerror = () => reject(url);
  });
}

// 示例用法
Promise.all([
  preloadWithPromise('https://example.com/image1.jpg'),
  preloadWithPromise('https://example.com/image2.png')
])
  .then(() => console.log('All images loaded'))
  .catch(err => console.error(`Error loading: ${err}`));

兼容性注意事项

  • 现代浏览器均支持 Image 对象,无需额外兼容处理。
  • 若需支持更早版本(如 IE9 以下),可通过 document.createElement('img') 替代 new Image()

性能优化建议

  • 避免一次性加载过多图片,可分批次或按需加载。
  • 对动态生成的图片 URL,确保先预加载再使用。

标签: 加载图片
分享给朋友:

相关文章

vue2实现图片懒加载

vue2实现图片懒加载

实现图片懒加载的方法 在Vue2中实现图片懒加载可以通过以下方法完成,核心原理是监听图片是否进入可视区域,再动态加载图片资源。 使用IntersectionObserver API Intersec…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

jquery图片

jquery图片

jQuery 图片操作 jQuery 提供了多种方法来处理图片,包括加载、显示、隐藏、动画效果等。以下是一些常见的 jQuery 图片操作方法: 动态加载图片 使用 jQuery 的 attr()…

vue实现图片查看

vue实现图片查看

实现图片查看功能 在Vue中实现图片查看功能可以通过多种方式完成,常见的有使用原生HTML5的<dialog>元素、第三方组件库(如Element UI、Vant等)或专用插件(如view…

vue图片实现多选

vue图片实现多选

Vue 图片多选实现方法 在 Vue 中实现图片多选功能可以通过以下几种方式完成,具体取决于项目需求和复杂度。 使用 v-model 和数组存储选中状态 通过 v-model 绑定一个数组来记录选中…

vue实现添加图片

vue实现添加图片

使用 <input type="file"> 上传图片 通过 HTML 原生文件输入框获取用户选择的图片文件,结合 Vue 的 v-on 监听文件变化事件。 <template…