我试图读取大文件(3GB)作为100Mb的片。当阅读大文件时,HTML5 FileReader API崩溃了chrome 17
***function sliceMe() {
var file = document.getElementById('files').files[0],
fr = new FileReader;
var chunkSize = document.getElementById('txtSize').value;
chunkSize =1048576;
var chunks = Math.ceil(file.size/chunkSize);
var chunk = 0;
document.getElementById('byte_range').innerHTML = "";
function loadNext() {
var start, end,
blobSlice = File.prototype.mozSlice || File.prototype.webkitSlice;
start = chunk * chunkSize;
if (start > file.size)
start = end+1;
end = start + (chunkSize -1) >= file.size ? file.size : start + (chunkSize -1);
fr.onload = function(e) {
if (++chunk <= chunks) {
document.getElementById('byte_range').innerHTML += chunk + " " +
['Read bytes: ', start , ' - ', end,
' of ', file.size, ' byte file'].join('')+"<br>";
//console.info(chunk);
loadNext(); // shortcut here
}
};
fr.readAsArrayBuffer(blobSlice.call(file, start, end));
}
loadNext();
}***
上面的代码工作预期在Firefox和Chrome浏览器16,但在Chrome 17 & 18dev版本,读取1GB数据浏览器崩溃了。
它在Chrome 17中是否已知问题?
如果您有可重现的崩溃,请在http://new.crbug.com/上提交错误并在此处张贴ID。我会确保它在团队面前。 – 2012-02-14 08:52:37
问题已提交:问题#114179:\t HTML5 FileReader API在将大文件作为扇区片段 – Joe 2012-02-14 14:45:58
后续处理时,崩溃了Chrome 17。谢谢! – 2012-02-14 15:22:34