最近微軟更新頻頻,我也去湊熱鬧下載更新包安裝包。我發現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,點擊“確定”。
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,點擊“確定”。
