网络编程
位置:首页>> 网络编程>> JavaScript>> jszip插件实现图片打包下载的方法分析 <font color=red>原创</font>

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

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

标签:js,jszip,插件,图片

前言

由于后端使用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>

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com