首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript:导出大型文本/csv文件会导致Google Chrome崩溃

Javascript:导出大型文本/csv文件会导致Google Chrome崩溃
EN

Stack Overflow用户
提问于 2014-04-26 03:31:31
回答 2查看 24.1K关注 0票数 40

我有下面的Javascript代码在客户端导出CSV文件。但是,每次我尝试导出一个大型数组时,Google Chrome都会崩溃。Chrome中允许的数据字符串的限制是多少?有没有可能它达到了Chrome允许的内存限制?如果数据字符串对于Chrome来说太长了,我该如何在客户端导出大型CSV文件?

var csvRows = [...]; //Array with 40000 items, each item is 100 characters long.

var csvString = csvRows.join("\r\n");

var a = document.createElement('a');

a.href        = 'data:text/csv;charset=utf-8,' + encodeURIComponent(csvString);
a.target      = '_blank';
a.download    = 'export.csv';

document.body.appendChild(a);
a.click();

(预期文件大小约为6.4MB)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-22 21:26:53

有相同的问题,并使用Blob解决了它。

例如:

csvData = new Blob([csvString], { type: 'text/csv' }); 
var csvUrl = URL.createObjectURL(csvData);
a.href =  csvUrl;

来源:https://stackoverflow.com/a/24611096/3048937

票数 64
EN

Stack Overflow用户

发布于 2016-07-15 15:12:23

我使用下面的函数来下载CSV。在IE/Firefox/Chrome中为我工作

function downloadFile(data, fileName) {
        var csvData = data;
        var blob = new Blob([ csvData ], {
            type : "application/csv;charset=utf-8;"
        });

        if (window.navigator.msSaveBlob) {
            // FOR IE BROWSER
            navigator.msSaveBlob(blob, fileName);
        } else {
            // FOR OTHER BROWSERS
            var link = document.createElement("a");
            var csvUrl = URL.createObjectURL(blob);
            link.href = csvUrl;
            link.style = "visibility:hidden";
            link.download = fileName;
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
        }
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23301467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档