gpt4 book ai didi

javascript - 使用 FileAPI 下载生成的大数据文件

转载 作者:数据小太阳 更新时间:2023-10-29 04:19:41 24 4
gpt4 key购买 nike

JavaScript 进程生成大量数据 (200-300MB)。我想保存此数据以供进一步分析,但到目前为止我发现最好的方法是使用此示例进行保存 http://jsfiddle.net/c2U2T/这对我来说不是一个选项,因为它看起来需要所有数据在开始下载之前可用。但我需要的是类似

var saver = new Saver();
saver.save(); // The Save As ... dialog appears
saver.onaccepted = function () { // user accepted saving
for (var i = 0; i < 1000000; i++) {
saver.write(Math.random());
}
};

当然,代替 Math.random() 的将是一些有意义的构造。

最佳答案

@dader - 我会以 dader 的例子为基础。

  1. 使用 HTML5 文件系统 API - 但不是每一行都写入文件(比它的值(value)更多的 IO),您可以将内存中的一些行批处理到一个 javascript 对象/数组/字符串中,然后只写入它当他们达到某个阈值时,将其写入文件。因此,您将在进程中断时附加到本地文件(使暂停/重新启动/停止等变得容易)
  2. 请注意以下内容,这是一个示例,说明如何生成对话以请求您需要的数据量(听起来很大)。在 chrome 中测试:

    navigator.persistentStorage.queryUsageAndQuota(
    function (usage, quota) {
    var availableSpace = quota - usage;
    var requestingQuota = args.size + usage;
    if (availableSpace >= args.size) {
    window.requestFileSystem(PERSISTENT, availableSpace, persistentStorageGranted, persistentStorageDenied);
    } else {
    navigator.persistentStorage.requestQuota(
    requestingQuota, function (grantedQuota) {
    window.requestFileSystem(PERSISTENT, grantedQuota - usage, persistentStorageGranted, persistentStorageDenied);
    }, errorCb
    );
    }
    }, errorCb);
  3. 完成后,您可以使用 Javascript 打开一个新窗口,其中包含您保存的 blob 对象的 url,您可以通过以下方式检索该 blob 对象:fileEntry.toURL()

  4. 或者 - 当它完成处理后,您可以只在 html 链接中显示该 URL,然后他们可以右键单击它并执行他们想要的任何将链接另存为的操作。

但这是一项新颖而酷的事情,您可以完全在浏览器中完成,而根本不需要以任何方式涉及服务器。旁注,一个 Javascript 进程生成的 200-300MB 数据听起来绝对庞大……这会让人担心您是否正在存储“正确的”数据……

关于javascript - 使用 FileAPI 下载生成的大数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com