0
我在web.config中配置了maxrequestlength = 10MB
。但是在我的系統中有一個導入.csv
和.csv
的功能,我的客戶導入的功能可以超過10MB
。所以,我需要一個性能良好的模式發送一個大的json
(導入的json
)。發送大型json到服務器的最佳模式
我想到zip
或發送json
在部分。什麼是最好的模式?
是否有其他形式更有效?
我在web.config中配置了maxrequestlength = 10MB
。但是在我的系統中有一個導入.csv
和.csv
的功能,我的客戶導入的功能可以超過10MB
。所以,我需要一個性能良好的模式發送一個大的json
(導入的json
)。發送大型json到服務器的最佳模式
我想到zip
或發送json
在部分。什麼是最好的模式?
是否有其他形式更有效?
使用文件API(https://www.html5rocks.com/tutorials/file/dndfiles/),我們可以最大限度地減少上傳大文件的工作量。該技術是將上傳分成多個塊,爲每個部分產生一個XHR,並將該文件放在服務器上。這與GMail如何快速上傳大型附件類似。這種技術也可用於解決Google App Engine的32MB http請求限制。
function upload(blobOrFile) {
var xhr = new XMLHttpRequest();
xhr.open('POST', '/server', true);
xhr.onload = function(e) { ... };
xhr.send(blobOrFile);
}
document.querySelector('input[type="file"]').addEventListener('change', function(e) {
var blob = this.files[0];
const BYTES_PER_CHUNK = 1024 * 1024; // 1MB chunk sizes.
const SIZE = blob.size;
var start = 0;
var end = BYTES_PER_CHUNK;
while(start < SIZE) {
upload(blob.slice(start, end));
start = end;
end = start + BYTES_PER_CHUNK;
}
}, false);
})();
這裏沒有顯示的是重構服務器上的文件的代碼。
P.S.因爲像http://underscorejs.org/#zip這樣的功能也可以使用。
我會測試這個例子。謝謝 – user3352698