最近做一个上传下载项目,客户非要实现批量下载,于是实现了压缩之后下载,然后客户又提出,不压缩可以不可以,个人理解应该不难实现,结果纠结近一天的时间,web应用都是一个请求一个响应,所以只有想办法在浏览器重复发起请求,但是在js中for循环提交怎么也实现不了。只有最后一次提交是响应。大家有没有比较好的方法。
$("#submitsend").click(function () {
for (i=0;i<strs.length-1;i++ )
{
alert(strs[i]);
$("#idnums").val(strs[i]);
$("#sendform").attr("action","/download.action");
$("#sendform").submit();
}
}
核心代码如上,点击批量下载按钮,根据选中的id 到后台获取数据并下载。
$("#submitsend").click(function () {
for (i=0;i<strs.length-1;i++ )
{
alert(strs[i]);
$("#idnums").val(strs[i]);
$("#sendform").attr("action","/download.action");
$("#sendform").submit();
}
}
核心代码如上,点击批量下载按钮,根据选中的id 到后台获取数据并下载。
用setTimeout()定时每隔一定的时间发一次请求。(还是要设置 target="_blank"的)
for(let i = 10;i--;){
let iframe = document.createElement('iframe')
input.value = i.toString()
iframe.name = 'name' + i
document.body.appendChild(iframe)
form.target = 'name' + i
form.submit()
}
},false)好处是不需要弹出多个tab。iframe设置成隐藏,还可添加加载完自动删除它。