Папа Parse, по-видимому, вызывает сбой Chrome и Opera (Windows 7), если я пытаюсь разобрать «большие» строки csv около 1 миллиона строк с примерно 20 столбцами. Где одна и та же страница успешно загружается в Firefox. Сбой Chrome и Opera даже перед вызовом Parse, если у меня установлена большая строка csv, и добавьте тег < > в библиотеку papaparse.js. Если я не добавляю тег < > для papaparse.js, нет проблем с созданием больших строк csv, но тогда я не могу их разобрать. В моем фактическом варианте использования я не генерирую большие строки csv в javascript, а скорее вытаскиваю их из архива zip. Кажется, не имеет никакого значения, если я использую функции шага или блока. Здесь вы можете запустить тестовый пример; Test Case Код ошибки;Большие строки с анализом Papa приводят к сбою Chrome и Opera
<!doctype html>
<html>
<script src="http://papaparse.com/resources/js/papaparse.js"></script>
<body>
<script>
function my_createMockCSV(rows) {
var my_csv="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v\r\n";
for (var i=1; i<rows; i++) {
my_csv+= i+","+ i+","+ i+","+ i+","+ i+","+ i+","+ i+","+ i+","+
i+","+ i+","+ i+","+ i+","+ i+","+ i+","+ i+","+ i+","+
i+","+ i+","+ i+","+ i+","+ i+","+ i+","+"\r\n";
}
return my_csv;
}
function parseCSV(csv) {
var rowcount=0;
Papa.parse(csv,
{
delimiter: ',',
worker: false,
encoding: 'default',
header: true,
chunk: function(results) {
rowcount+= results.data.length;
console.log("Parsed rows: "+rowcount);
},
complete: function (results) {
console.log("Complete - parsed: "+rowcount+" rows");
}
});
}
function run_testcase() {
rows=document.getElementById("rows").value;
//parseCSV(my_createMockCSV(rows));
console.log("Begin Generating CSV ...");
alert("About to generate Mock CSV");
var my_csv=my_createMockCSV(rows);
console.log("End Generating CSV ...");
alert("About to parse Mock CSV");
parseCSV(my_csv);
}
</script>
Papaparse test case script: Will crash Chrome, Opera<br/>
Rows: <input id="rows" type="number" value="1000000"> (Try around 1mil rows)
<button onclick="run_testcase();">Run</button>
</body>
</html>