多种js图片预加载实现方式分享

yizhihongxing

下面就为大家详细讲解多种JS图片预加载实现方式。

1. 什么是图片预加载?

在网页加载中,如果直接使用img标签加载图片,等用户看到图片会出现白屏,影响用户体验,因此我们通常需要在网页中使用图片预加载,将图片提前加载好,等用户看到图片的时候就可以直接显示,这样可以提升用户体验。

2. 图片预加载实现方式

2.1 使用Image对象预加载图片

使用Image对象预加载图片的方式如下:

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

preLoadImg("https://picsum.photos/200/300").then(() => {
  console.log("图片加载完成!");
}).catch(() => {
  console.log("图片加载失败!");
});

2.2 使用XMLHttpRequest对象和Blob对象预加载图片

使用XMLHttpRequest对象和Blob对象预加载图片的方式如下:

function preLoadImg(url) {
  return new Promise((resolve) => {
    let xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = function() {
      if (this.status === 200) {
        var blob = this.response;
        var img = new Image();
        img.onload = function() {
          resolve();
        };
        img.src = window.URL.createObjectURL(blob);
      }
    };
    xhr.send();
  });
}

preLoadImg("https://picsum.photos/200/300").then(() => {
  console.log("图片加载完成!");
}).catch(() => {
  console.log("图片加载失败!");
});

3. 总结

通过以上两个示例,我们可以看到,实现图片预加载的方式有很多种,主要有使用Image对象和XMLHttpRequest对象和Blob对象。在实际使用中,我们需要根据实际场景选择最合适的方式来实现图片预加载,以提升用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:多种js图片预加载实现方式分享 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • PowerShell入门教程之PowerShell有什么用?

    PowerShell入门教程之PowerShell有什么用? PowerShell是一种基于任务脚本语言的命令行Shell及其相应的脚本语言,它是Windows的内置脚本语言。与其他命令行Shell相比,PowerShell更加强大和灵活,其语法更为简化,可以用于自动化Windows系统的管理和维护。接下来,将详细讲解PowerShell的用途和功能。 Po…

    other 2023年6月27日
    00
  • 360卫士设置删除右键菜单使用360进行木马查杀等选项

    360卫士设置删除右键菜单使用360进行木马查杀等选项的攻略 如果你使用 360 卫士时,想要删除某些右键菜单,或者想要使用 360 进行木马查杀等操作,可以按照以下步骤进行设置: 打开 360 卫士主界面,找到右上角的齿轮图标,点击进入“设置”页面; 在“设置”页面中,点击左侧的“加速”选项卡,在选项卡下方找到“Windows 右键菜单”,点击进入对应设置…

    other 2023年6月27日
    00
  • oraclein函数

    以下是关于“Oracle IN函数”的完整攻略,包括基本概念、语法、示例说明和注意事项。 基本概念 Oracle IN函数是一种用于查询数据的函数,它可以用于查询某个字段是否在一个给定的值列表中。IN函数可以接受多个参数,每个参数之间用逗号分隔。如果查询字段值在给定的值列表中,则返回TRUE,否则返回FALSE。 语法 IN函数的语法如下: SELECT c…

    other 2023年5月7日
    00
  • MySQL实现字段或字符串拼接的三种方式总结

    以下是MySQL实现字段或字符串拼接的三种方式总结的详细攻略。 方式一:使用concat函数进行字段或字符串拼接 基本语法 concat(str1,str2,…) 说明:str1,str2为要拼接的字段或字符串,可以有多个参数,拼接的顺序按照参数的输入顺序。 示例说明 例如,有一张学生信息表,字段包括:学号、姓名、性别、年龄,如下所示: stu_id s…

    other 2023年6月25日
    00
  • linux下删除乱码文件名的方法

    针对Linux下删除乱码文件名的方法,以下为详细攻略: 一、什么是乱码文件名 在Linux中,文件名通常是由ASCII字符集中的字母、数字、符号等组成的。但是当我们在Linux上遇到了乱码文件名,通常是因为文件名使用了非ASCII字符集中的字符,如中文、日文、韩文等。这些非ASCII的字符在Linux中可能会显示为乱码,特别是在系统环境配置不当或者终端软件不…

    other 2023年6月26日
    00
  • java获取当前日期的四种方法

    Java获取当前日期的四种方法 在Java开发中,获取当前日期是经常使用的操作。那么在Java中,我们有哪些方式可以获取当前日期呢?本文将介绍Java获取当前日期的四种方法。 方法一:使用java.util.Date类 我们可以使用java.util.Date类获取当前日期。这个类主要用来表示日期和时间。我们可以使用无参构造方法来获取当前日期: Date c…

    其他 2023年3月29日
    00
  • Win11怎么卸载应用? 卸载默认Win11应用程序的方法

    Win11中卸载应用程序的方法和Win10相似,下面是详细攻略: 卸载应用程序的方法 打开“设置” 点击屏幕左下角的“开始”按钮,在“开始”菜单中找到并点击“设置”图标,或者使用快捷键“Win + I”打开“设置”。 打开“应用和功能” 在“设置”中,点击“应用”选项,然后在左侧导航栏中选择“应用和功能”。 选择要卸载的应用 滚动列表找到要卸载的应用程序,在…

    other 2023年6月25日
    00
  • 更好的pip工作流

    以下是“更好的pip工作流”的完整攻略: 更好的pip工作流 pip是Python的包管理工具,可以帮助我们安装、升级和管理Python包。本攻略将详细解如何使用更好的pip工作流,包括使用虚拟环境、使用requirements.txt文件、使用pip-tools等。 使用虚拟环境 虚拟环境是Python中的一个重要概念,可以帮助我们隔离不同项目的依赖关系,…

    other 2023年5月8日
    00
合作推广
合作推广
分享本页
返回顶部