[笔记]chrome65使用download属性连续下载文件失效的问题
发布时间:2020-12-15 01:18:36 所属栏目:C语言 来源:网络整理
导读:对于能够用正确路径访问到的文件,我们可以动态创建一个a标签,并使用他的download属性来下载该文件,但当连续下载时,高版本的chrome却只能下载一张。 一、现象 简化操作,假设我们就是点击这个a标签, body a href="pic.png" download id="download"下载/a
对于能够用正确路径访问到的文件,我们可以动态创建一个a标签,并使用他的download属性来下载该文件,但当连续下载时,高版本的chrome却只能下载一张。 一、现象简化操作,假设我们就是点击这个a标签, <body> <a href="pic.png" download id="download">下载</a> <script type="text/javascript"> for (var i = 0; i < 3; ++i) { document.getElementById('download').click(); } </script> </body> 我在chrome33,59上尝试都是能下三次的。(有是否要下载多张的提示,自己电脑上的66也行。。。) 但是在59上,默认只能下载一张,没有任何提示。 二、找方法既然不能连续下,是不是浏览器太忙不能处理了呢,先加个定时器看看, for (var i = 0; i < 3; ++i) { setTimeout(function () { document.getElementById('download').click(); },100 * i); } 发现每个延迟0.1s是能行的,这个0.1是临时给的,最小给到了21ms,再往下给就不行了。但是21ms放到真实的环境中还是不行,这就奇怪了,难道是因为cpu处理事情太多了? 再修改,强制让浏览器卡主1s, for (var i = 0; i < 3; ++i) { setTimeout(function () { document.getElementById('download').click(); },100 * i); } var now = +new Date(); while (1) { if (+new Date() - now > 1000) { break; } } 发现65上还是只能下载一张,也就是下载还是和cpu状态有关的,回到家66版本能正常下。。。 搜了半天还木有这方面的资料。。。 还是保守留了一秒来下载。 以下2018-5-27更新, 将浏览器升级到最新的66版本后,发现没有这个问题了。。。。 难道是chrome的问题? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |