我可以使用javascript在本地创建和保存一个巨大的文件吗
Can I use javascript to locally create and save a humongous file?
我想使用javascript在客户端创建并保存一个大的.csv文件。这个问题以前已经被问过并回答过(例如,参见1、2、3或4),这可以归结为两种方法(以及其他方法):
-
使用FileSaver.js实现w3c的
saveAs()
:var lines = ["line 1,cell 11,cell 12'n","line 2,cell 21,cell 22'n"]; var type = "text/csv;charset=utf-8"; var blob = new Blob(lines,{"type":type}); saveAs(blob,"download.csv");
-
使用
a[download]
和数据uri:var lines = ["line 1,cell 11,cell 12'n","line 2,cell 21,cell 22'n"]; var type = "text/csv;charset=utf-8"; var downloader = $('<a download href="data:'+type+','+escape(lines.join(''))+'"></a>') .appendTo("body") downloader[0].click(); downloader.remove();
我的问题是我的文件可能是巨大的:1800万条线路和2.5 Gb(我希望能够处理更多)。创建lines
会占用太多内存并导致网站崩溃。但是,没有理由仅仅为了将lines
保存到硬盘驱动器而将其存储在浏览器的内存中。有没有一种方法可以使用javascript创建渐进式下载(换句话说,开始下载,但在计算时不断添加行)?或者我唯一的选择是将文件作为单独的块下载,然后用户必须将其连接在一起?
如果您正在使用HTML5,您可以尝试使用FileSytem API。请参阅此处获取有关该主题的信息,并参阅此处获取关于如何从客户端创建和访问文件的更实用的示例。
相关文章:
- 我可以使用javascript在本地创建和保存一个巨大的文件吗
- 通过jQuery发布一个巨大的html表单
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- Browserify生成一个*巨大的*输出文件
- 使用 Javascript 优化一个巨大的无序列表
- 用Javascript框架重构一个巨大的表单
- 如何在一个巨大的多维数组中找到每列的最大长度
- 正在限制文本区域中的字数..但当我输入最大字数时,输入的文本突然变成了一个巨大的字符串
- 在JavaScript中循环遍历一个巨大的数组
- 如何通过javascript或jquery读取一个巨大的文本文件
- 用一个巨大的字符串“”转换数组;数字”;,用逗号分隔成一个数字数组(而不是字符串)
- Box2d创造了一个巨大的身体——把它分开
- 将javascript命名空间添加到一个巨大的项目中
- 有没有比insertAdjacentHTML()和一个巨大的HTML字符串更好的方法将HTML插入DOM中
- 完整的日历形式Arshaw不适合,它有一个巨大的高度
- 对一个巨大的数组进行并行或同步迭代会更快吗?
- 处理一个巨大的状态对象
- 如何使用 php 有效地将一个巨大的 JavaScript 字符串存储到文件中
- 使用数组值缩短一个巨大的列表
- 我可以在单个播放器中添加多个VAST标签吗?这意味着,如果一个巨大的广告无法加载,那么就采用另一个