我在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();
});
};
问题:当字符串长度很小时,我可以下载数据。 但是当字符串长度变得更高(> 10 ^ 5)时,我的页面崩溃了。 这是因为&#34; encodeUriComponet(text)&#34;无法编码大 数据。
我也试过window.open("data:attachment/txt," + encodeURIComponent(text));
但是我的页面再次崩溃,原因与encodeURIComponet无法编码如此大的字符串的原因相同。
另一种方法:我还在考虑使用HTML5文件编写API将数据写入文件,但它仅支持Chrome网页浏览器,但我需要将此功能用于至少firefox和铬都。
使用案例 我不想通过破坏数据来进行多次下载,因为我最终需要将数据放在一个文件中。
我的目标是支持大约10 ^ 6长度的字符串。任何人都可以帮我如何下载/写入这些数据到一个文件。
答案 0 :(得分:1)
我解决了它如下。
var _generateFeed = function(text) { /*some code here*/ var url = URL.createObjectURL( new Blob( [text], {type:'text/plain'} ) ); $("#textLink").attr("href",url)[0].click(); };
注意: