首页 > 解决方案 > 使用 XMLHttpRequest 下载多图像。请求全部完成,但只获得 10 或 20 张图像

问题描述

您好我正在尝试从网页下载图像。

在 devtool 中运行代码并为其创建一个小册子。我的代码有效,但如果 imgarr.length 更大,我只能得到 10 或 20 个图像。我检查了所有请求,它们仍然有效(状态 200)。请帮助我这有什么问题。

var imgarr = [url1, url2,...] // using querySelectorAll to get Array of URL Image;
try {
    for (var i = 0; i < imgarr.length; i++) {
        download(imgarr[i],'image')
    };
} catch (e) {
    alert("Download failed.");
    console.log('Download failed.', e);
}

function download(url, fileName) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url);
    xhr.responseType = 'blob';
    xhr.onreadystatechange = function () {
        if(this.readyState == 4 && this.status == 200){
            var url = window.URL.createObjectURL(this.response);
            var a = document.createElement("a");
            document.body.appendChild(a);
            a.style = "display: none";
            a.href = url;
            a.download = fileName;
            a.click();
            document.body.removeChild(a);
        }
    }
    xhr.send();
}

标签: javascriptajaximagedownloadxmlhttprequest

解决方案


推荐阅读