首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将大文件作为切片读取时,HTML5 FileReader API导致chrome 17崩溃

将大文件作为切片读取时,HTML5 FileReader API导致chrome 17崩溃
EN

Stack Overflow用户
提问于 2012-02-14 01:36:09
回答 2查看 5.1K关注 0票数 3

我正在尝试读取大文件(3 3GB)的切片为100Mb。

代码语言:javascript
复制
      ***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版本中,在读取1 1GB数据后浏览器崩溃。

Chrome 17中是否存在已知问题?

EN

回答 2

Stack Overflow用户

发布于 2013-07-11 21:08:06

我在读取一个1.8 GB的文件时也遇到了同样的问题。如果我观察任务管理器,chrome.exe会占用高达1.5 GB的内存,然后崩溃。我的解决方案是使用Javascript worker,然后使用FileReaderSync而不是FileReader。javascript worker在单独的线程中运行,而FileReaderSync只能在javascript worker中工作。

票数 2
EN

Stack Overflow用户

发布于 2012-05-04 16:54:05

您需要更改算法,该算法应根据文件大小更改块大小运行时。当循环连续运行时,google chrome崩溃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9265139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档