Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要通过浏览器生成和导出巨大的CSV_Javascript_Html - Fatal编程技术网

Javascript 需要通过浏览器生成和导出巨大的CSV

Javascript 需要通过浏览器生成和导出巨大的CSV,javascript,html,Javascript,Html,我必须通过浏览器生成一个80x250000的CSV。处理这么多的数据有点慢,但在数组中是可以管理的,但是当我试图生成一个CSV字符串以转换为Blob时,我遇到了一个问题 这样的解决方案:包括创建一个大的CSV内容字符串。我无法创建这样一个字符串而不使浏览器崩溃。如何生成这么大的文件?下面是我目前用来对此进行基准测试的代码: var fileData = "contents:text/csv;base64,"; for(var i = 0, temp; i < 150000; i++){

我必须通过浏览器生成一个80x250000的CSV。处理这么多的数据有点慢,但在数组中是可以管理的,但是当我试图生成一个CSV字符串以转换为Blob时,我遇到了一个问题

这样的解决方案:包括创建一个大的CSV内容字符串。我无法创建这样一个字符串而不使浏览器崩溃。如何生成这么大的文件?下面是我目前用来对此进行基准测试的代码:

var fileData = "contents:text/csv;base64,";
for(var i = 0, temp; i < 150000; i++){
    for(var j = 0; j < 80; j++){
        fileData += Math.random() + ",";
    }
    fileData += "\r\n";
}
var exportLink = document.createElement('a');
var csvData = new Blob([window.btoa(fileData)], { type: "text/csv" }); 
var csvUrl = URL.createObjectURL(csvData);
exportLink.href =  csvUrl;
var fileData=“contents:text/csv;base64”;
对于(变量i=0,温度;i<150000;i++){
对于(var j=0;j<80;j++){
fileData+=Math.random()+“,”;
}
fileData+=“\r\n”;
}
var exportLink=document.createElement('a');
var csvData=new Blob([window.btoa(fileData)],{type:“text/csv”});
var csvUrl=URL.createObjectURL(csvData);
exportLink.href=csvUrl;

为什么不能在服务器端创建文件并使用AJAX返回?为什么需要在浏览器中生成?(而不是在服务器端生成)我们没有能力创建任何服务器端接口。整个后端是预打包产品的一部分。我们无法访问web服务器。如果无法完成,则无法完成。然后您可以考虑设置另一个服务器(您可以访问),它可以从您无法触摸的文件中获取数据并准备下载文件。为什么不能在服务器端创建文件并使用Ajax返回它?为什么需要在浏览器中生成它?(而不是在服务器端生成)我们没有能力创建任何服务器端接口。整个后端是预打包产品的一部分。我们无法访问web服务器。如果无法完成,则无法完成。然后,您可以考虑设置另一个服务器(您可以访问),该服务器从您无法触摸的服务器中获取数据并准备下载文件。