jszip插件实现图片打包下载的方法分析 <font color=red>原创</font>

作者:shichen2014 时间:2024-05-09 10:34:34 

前言

由于后端使用php、node.js、java等进行大量的图片下载操作可能会导致服务器负载过高,所以将图片下载转移到客户端是个不错的选择,借助 HTML5 中的新特性 Blob 和 URL.createObjectURL API 实现。

实现代码

function download(){
 var urls = [
   "https://example.com/img1.jpg",
   "https://example.com/img2.png"
 ];
 var zip = new JSZip();
 var count = 0;
 urls.forEach((url, index) => {
   var xhr = new XMLHttpRequest();
   xhr.open("GET", url, true);
   xhr.responseType = "blob";
   xhr.onload = function () {
     if (xhr.status === 200) {
       var name = url.substring(url.lastIndexOf("/") + 1);
       zip.file(name, xhr.response);
     }
     count++;
     if (count === urls.length) {
       zip.generateAsync({type:"blob"}).then(function(content) {
         saveAs(content, "pictures.zip");
         console.log("下载成功");
       });
     }
   };
   xhr.send();
 });
}

另外,注意:在页面顶部还需要引入jszip插件

<head>
 <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.6.0/jszip.min.js"></script>
</head>

这样可以将图片下载过程从服务器转移到客户端,从而减轻服务器压力。同时需要注意的是,在使用客户端进行大量图片下载时,也要防止网络请求并发数量过多导致浏览器崩溃。

标签:js,jszip,插件,图片
0
投稿

猜你喜欢

  • 2010怎么就宅了——我们是设计星球的阿凡达

    2010-03-09 13:26:00
  • PyTorch中model.zero_grad()和optimizer.zero_grad()用法

    2023-09-15 20:13:57
  • Python2.x版本中cmp()方法的使用教程

    2022-08-19 01:23:40
  • 使用pandas批量处理矢量化字符串的实例讲解

    2023-09-22 03:00:01
  • 使用cgroups来限制MySQL企业备份服务对资源的占用

    2024-01-19 18:47:23
  • python使用Flask操作mysql实现登录功能

    2024-01-21 02:20:00
  • 大前端时代搞定PC/Mac端开发,我有绝招(收藏版)

    2023-02-13 08:38:58
  • PHP的mysqli_select_db()函数讲解

    2023-06-07 18:59:44
  • golang中json和struct的使用说明

    2023-10-09 13:09:10
  • Python实现求数列和的方法示例

    2021-07-15 05:27:08
  • python实现从ftp上下载文件的实例方法

    2021-04-24 16:37:02
  • Vue.js通用应用框架-Nuxt.js的上手教程

    2024-04-28 10:54:31
  • 六个窍门助你提高Python运行效率

    2021-07-19 08:31:15
  • 详解微信小程序文件下载--视频和图片

    2023-08-10 16:38:50
  • Python监控服务器实用工具psutil使用解析

    2021-10-14 03:16:24
  • python脚本爬取字体文件的实现方法

    2022-09-07 18:20:55
  • 如何将Python列表转换为字符串

    2023-11-02 12:54:27
  • PyTorch中的CUDA的操作方法

    2022-02-24 18:54:41
  • Django如何将URL映射到视图

    2021-11-21 14:28:41
  • python十进制和二进制的转换方法(含浮点数)

    2021-04-03 02:26:24
  • asp之家 网络编程 m.aspxhome.com