【发布时间】:2015-10-23 11:36:50
【问题描述】:
我有以下用于下载文件的 JavaScript 代码,我不禁想我是从这里得到的:Create a file in memory for user to download, not through server
但是,这个函数在 Chrome 中崩溃了,因为我试图下载太多数据(它可能是几 MB,但对于 1 MB 以下的下载似乎可以正常工作。我还没有做很多指标)。
我真的很喜欢这个功能,因为它可以让我从现有的巨大 JavaScript 变量中创建一个字符串并立即下载它。
那么我的两个问题是:
A) 导致崩溃的原因是什么?是字符串text 的大小还是这个函数中有什么东西?我读到 60MB 的字符串在 JavaScript 中是可能的,但我认为我还没有达到。
B) 如果是这个功能,是否有另一种简单的方法来下载一些允许我通过 JavaScript 在本地生成内容的巨大文件?
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
【问题讨论】:
-
@GolezTrol 你知道 Chrome 什么时候给你那个小方脸,然后说“他死了吉姆!”或“哇!”随着页面背景变成深灰蓝色?
-
啊,那种崩溃。 :)
-
"对于 1 MB 以下的下载似乎可以正常工作" -- 我来到这里希望为我的 2 GB 下载找到答案...
-
@JohnWeisz 在兔子洞里,我发现了这个:github.com/jimmywarting/StreamSaver.js 它可以帮助您在本地下载 Gigs 数据:)
标签: javascript file download