最近微软更新频频,我也去凑热闹下载更新包安装包。我发现chrome弹出一个对话框
说什么 是否允许下载多个文件
点击允许以后果然下载N个文件
我心想微软这么牛?一次请求可以拆分成多个文件下载了?
遂再次下载一次,看看是什么请求
原来只是动态请求了多次JS,这个JS其实就是加了个iframe,里面是下载的文件
JS请求格式是这样的,http://某js?guid guid guid guid N个GUID组成的参数,JS内部代码太多不放上来了,就是添加iframe
微软的太过复杂,于是百度了一下,找了一个比较简单明了的例子,大家一看就明了啦
主要思路:在一个页面中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,点击“确定”。