一次下载多个文件

最近微软更新频频,我也去凑热闹下载更新包安装包。我发现chrome弹出一个对话框

说什么 是否允许下载多个文件

点击允许以后果然下载N个文件

我心想微软这么牛?一次请求可以拆分成多个文件下载了?

遂再次下载一次,看看是什么请求

 

原来只是动态请求了多次JS,这个JS其实就是加了个iframe,里面是下载的文件

 JS请求格式是这样的,http://某js?guid guid guid guid N个GUID组成的参数,JS内部代码太多不放上来了,就是添加iframe

微软的太过复杂,于是百度了一下,找了一个比较简单明了的例子,大家一看就明了啦

http://liyifeng20021.blog.163.com/blog/static/1016315920142551453938/

主要思路:在一个页面中append多个iframe的方式,来下载文件!
具体实现如下:
function batch_download(ids)
{
var tmp_array = [];
tmp_array = ids.split(",")
 
       //download
$("iframe").remove();  //清除页面上上一次存在的iframe
window.ids_array = tmp_array;   //定义全局变量用来获取要下载文件的id
download();  
}
 
function    download()
{
if(window.ids_array.length > 0)
{
$("body").append("<iframe src=download?file="+window.ids_array.pop()></iframe>"); //download为下载地址
setTimeout(download, 1); //等待1毫秒后执行递归
}
}
 
经过测试: 在IE9下,一次限制下载2个文件,如果要设置为多个,需要按以下步骤操作:
让IE9的下载数量增大的步骤如下: 
  1.找到“开始”菜单栏 - 运行 - 在搜索框输入“regedit” 
  2.在注册表找到下列注册表键值: 
  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings 
  3.右键单击“Internet Settings” - 选择新建 - 输入DWORD(32-bit)值 
  4.将新建值命名为MaxConnectionsPerServer。 
  5.双击MaxConnectionsPerServer,在数值框输入数字4,然后点击“确定”。 
  6.右键单击“Internet Settings”- 选择新建 - 输入DWORD(32-bit)值 
  7.将新建值命名为“MaxConnectionsPer1_0Server”。 
  8.双击“MaxConnectionsPer1_0Server”,在数值框输入6,点击“确定”。 
posted @ 2015-08-03 11:42  kee  阅读(4820)  评论(1编辑  收藏  举报