我在 javascript 中有大量 JSON 对象形式的数据。我已使用 JSON.stringify() 将其转换为字符串。现在我的用例是在文本文件中向用户提供这个大字符串。为此,我编写了下面的代码。
HTML代码
<button id='text_feed' type="submit">Generate ION Feed</button>
<a href="data:attachment/txt" id="textLink" download="feed.txt"></a>
JavaScript 代码
var text = //huge string
$("#text_feed").click(function() {
_generateFeed(text);
});
var _generateFeed = function(text) {
//some code here
$("#textLink").attr("href",
"data:attachment/txt," + encodeURIComponent(text)) [0].click();
});
};
Problem:当字符串长度很小时,我可以下载数据。
但是当字符串长度变长(> 10^5)时,我的页面崩溃了。
发生这种情况是因为“encodeUriComponet(text)”无法编码大
数据。
我也尝试过window.open("data:attachment/txt," + encodeURIComponent(text));
但由于相同的原因,我的页面再次崩溃,encodeURIComponet 无法编码如此大的字符串。
另一种方法:我还考虑使用 HTML5 文件写入 API 将数据写入文件,但它仅在 Chrome 网络浏览器中支持,但我需要至少在 Firefox 和 chrome 上实现此功能。
Use Case我不想通过破坏数据来进行多次下载,因为我最终需要将数据保存在单个文件中。
我的目标是支持大约 10^6 长度的字符串。任何人都可以帮助我如何将这么多数据下载/写入到单个文件中。