当前位置:首页 > JavaScript

js 实现预加载效果

2026-03-01 07:17:30JavaScript

实现预加载效果的 JavaScript 方法

预加载可以提升用户体验,减少等待时间。以下是几种常见的实现方式:

使用 Image 对象预加载图片

通过创建 Image 对象来提前加载图片资源,但不显示在页面上:

const preloadImages = (urls) => {
  urls.forEach(url => {
    const img = new Image();
    img.src = url;
  });
};

// 调用示例
preloadImages([
  'image1.jpg',
  'image2.jpg',
  'image3.jpg'
]);

使用 link 标签预加载关键资源

在 HTML 头部添加预加载标签,告诉浏览器提前获取重要资源:

<link rel="preload" href="critical.css" as="style">
<link rel="preload" href="main.js" as="script">

对应的动态创建方式:

const preloadResource = (url, type) => {
  const link = document.createElement('link');
  link.rel = 'preload';
  link.href = url;
  link.as = type;
  document.head.appendChild(link);
};

使用 Fetch API 预加载数据

通过 Fetch API 提前获取数据,但不立即处理:

const preloadData = (url) => {
  fetch(url, {
    method: 'GET',
    cache: 'force-cache'
  });
};

预加载视频/音频资源

对于媒体文件,可以先加载元数据:

const preloadVideo = (url) => {
  const video = document.createElement('video');
  video.preload = 'metadata';
  video.src = url;
};

显示加载进度

结合进度条提升用户体验:

js 实现预加载效果

const showProgress = (loaded, total) => {
  const progress = (loaded / total) * 100;
  document.getElementById('progress-bar').style.width = `${progress}%`;
};

// 示例使用
const totalResources = 10;
let loadedResources = 0;

// 在每个资源加载完成后调用
const resourceLoaded = () => {
  loadedResources++;
  showProgress(loadedResources, totalResources);
};

注意事项

  • 避免过度预加载,只针对关键资源
  • 移动端注意流量消耗问题
  • 考虑使用 Intersection Observer 实现懒加载与预加载结合
  • 对于SPA应用,可以预加载可能访问的路由资源

这些方法可以根据实际需求组合使用,实现最佳性能优化效果。

标签: 加载效果
分享给朋友:

相关文章

vue实现预览效果

vue实现预览效果

Vue 实现预览效果的方法 使用 v-html 指令实现简单预览 在 Vue 中可以通过 v-html 指令直接将 HTML 字符串渲染到页面上,适用于简单的富文本预览场景。 <templat…

js实现图片滚动效果

js实现图片滚动效果

使用CSS动画实现图片滚动 通过CSS的@keyframes和animation属性实现无缝滚动效果。将图片容器设置为横向排列,通过动画平移位置。 <style> .scroll-c…

vue实现翻页效果

vue实现翻页效果

使用Vue实现翻页效果 在Vue中实现翻页效果通常需要结合分页组件和数据处理逻辑。以下是几种常见方法: 基础分页组件实现 <template> <div> <…

vue实现加载条

vue实现加载条

Vue 实现加载条的方法 使用第三方库(如 NProgress) 安装 NProgress 库: npm install nprogress 在 Vue 项目中引入并使用: import…

vue 实现toggle效果

vue 实现toggle效果

使用 v-show 实现 Toggle 通过 v-show 指令可以控制元素的显示与隐藏,适合频繁切换的场景。v-show 仅切换 CSS 的 display 属性,不会销毁和重建 DOM。 <…

vue 实现动画效果

vue 实现动画效果

Vue 实现动画效果的方法 Vue 提供了多种方式实现动画效果,包括内置的过渡系统、第三方动画库以及 CSS 动画。以下是几种常见的方法: 使用 Vue 内置过渡系统 Vue 的 <trans…