Я создал веб-приложение для очистки данных CSV/TSV. Приложение позволяет загружать CSV-файл, читать его, исправлять данные, а затем загружать новый CSV-файл с правильными данными. Одна из проблем, с которыми я столкнулся, - это загрузка файлов с более чем 2500 строк. Браузер аварий со следующим сообщением об ошибке:encodeURI file download - crashing browser
"Aw, Snap! Something went wrong while displaying this webpage..."
Чтобы обойти эту проблему, я изменил программирование для загрузки несколько файлов CSV, не превышающие 2500 строк, пока все данные не будет загружены. Затем я собрал бы загруженные CSV-файлы в окончательный файл. Это не то решение, которое я ищу. Работая с файлами с более чем 100 000 строк, мне нужно загрузить все содержимое в 1 файл, а не 40. Мне также нужно иметь интерфейсное решение.
Ниже приведен код загрузки файла CSV. Я создаю скрытую ссылку, кодирующую содержимое массива данных (каждый элемент имеет 1000 строк) и создает путь для скрытой ссылки. Затем я запускаю щелчок по ссылке, чтобы начать загрузку.
var startDownload = function (data){
var hiddenElement = document.createElement('a');
var path = 'data:attachment/tsv,';
for (i=0;i<data.length;i++){
path += encodeURI(data[i]);
}
hiddenElement.href = path;
hiddenElement.target = '_blank';
hiddenElement.download = 'result.tsv';
hiddenElement.click();
}
В моем случае вышеуказанный процесс работает в течение ~ 2500 строк за раз. Если я попытаюсь загрузить большие файлы, браузер выйдет из строя. Что я делаю неправильно, и как я могу загрузить большие файлы без сбоев браузера? Файл, который разбивает браузер, имеет (12 000 строк по 48 столбцов)
p.s. Я делаю все это в Google Chrome, что позволяет загружать файлы. Поэтому решение должно работать в Chrome.
Hi Xited, нашли ли вы решение. Bcz также сталкивается с такой же проблемой. –
Вы пытаетесь полностью очистить CSV в браузере? Если нет, то почему вы не отправляете данные на сервер? – eddiewould
Возможно, посмотрите на http://www.gieson.com/Library/projects/utilities/opensave, если вы пытаетесь сделать это целиком в браузере. – eddiewould