zip.js 读取压缩文件存入沙盒崩溃的问题

wangjin1990123 2013-12-26 09:57:44
存入几张大文件到沙盒里面,没问题,而且速度很快。存入上百个小文件,浏览器就崩溃了

function FileWriter(entrie, fileName) {
filer.create(fileName, false, function (fileEntry) {
entrie.getData(new zip.FileWriter(fileEntry), function (data) {
console.log(data);
}
);
}, onError);
};
是这边的 getData 转化二进制的数据太大?
...全文
252 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixiangsnail 2016-07-15
  • 打赏
  • 举报
回复
我想问一下,就是存入沙盒的文件,从哪里可以找啊?
awfjplh 2013-12-26
  • 打赏
  • 举报
回复
Entry.prototype.getData = function(writer, onend, onprogress, checkCrc32) { var that = this, worker; function terminate(callback, param) { if (worker) worker.terminate(); worker = null; if (callback) callback(param); } function testCrc32(crc32) { var dataCrc32 = getDataHelper(4); dataCrc32.view.setUint32(0, crc32); return that.crc32 == dataCrc32.view.getUint32(0); } function getWriterData(uncompressedSize, crc32) { if (checkCrc32 && !testCrc32(crc32)) onreaderror(); else writer.getData(function(data) { terminate(onend, data); }); } function onreaderror() { terminate(onerror, ERR_READ_DATA); } function onwriteerror() { terminate(onerror, ERR_WRITE_DATA); } reader.readUint8Array(that.offset, 30, function(bytes) { var data = getDataHelper(bytes.length, bytes), dataOffset; if (data.view.getUint32(0) != 0x504b0304) { onerror(ERR_BAD_FORMAT); return; } readCommonHeader(that, data, 4, false, function(error) { onerror(error); return; }); dataOffset = that.offset + 30 + that.filenameLength + that.extraFieldLength; writer.init(function() { if (that.compressionMethod === 0) copy(reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror); else worker = inflate(reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror); }, onwriteerror); }, onreaderror); }; function seekEOCDR(offset, entriesCallback) { reader.readUint8Array(reader.size - offset, offset, function(bytes) { var dataView = getDataHelper(bytes.length, bytes).view; if (dataView.getUint32(0) != 0x504b0506) { seekEOCDR(offset + 1, entriesCallback); } else { entriesCallback(dataView); } }, function() { onerror(ERR_READ); }); } 就是这步 转换二进制流占用内存太大 导致浏览器崩溃
wangjin1990123 2013-12-26
  • 打赏
  • 举报
回复
引用 1 楼 awfjplh 的回复:
我一样 存入七八十张图片 浏览器崩溃 不给力啊
你电脑配置不好,我存入90多张没问题
awfjplh 2013-12-26
  • 打赏
  • 举报
回复
我一样 存入七八十张图片 浏览器崩溃 不给力啊

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧