pvvx
Активный участник сообщества
Как победить javascript на download сформированного *.csv размером более 2-х мегабайт?
Имеется:
Web-сервер на устройстве... Он отдает данные в Json с датчиков в виде 32 float значений в несколько ms.
Json опрашивается-принимается AJAX-ом и на HTML странице (загруженной с устройства, c его web) в работающем javascript отрисовываются графики... происходит накопление до 5000 пачек в виде 32 float + флаги...
На HTML описана кнопка сохранения данных в CSV формате и javascript примерно такого содержания:
По мере накопления данных размер CSV для сохранения увеличивается...
При размере сформированных данных CSV менее 2-х мегабайт файл успешно сохраняетcя в Chrome (для Firefox пишут, что ограничение до 1 040 000 байт). Далее кнопка ‘butSave’ на форме ничего не делает
При 5000 пачек замеров console log пишет:
Dbase length: 5000
CSVData length: 3230703
и $("butSave").onclick = function() не сохраняет файл и вообще ничего делает, кроме печати отмеченного в console log
Имеется:
Web-сервер на устройстве... Он отдает данные в Json с датчиков в виде 32 float значений в несколько ms.
Json опрашивается-принимается AJAX-ом и на HTML странице (загруженной с устройства, c его web) в работающем javascript отрисовываются графики... происходит накопление до 5000 пачек в виде 32 float + флаги...
На HTML описана кнопка сохранения данных в CSV формате и javascript примерно такого содержания:
JavaScript:
$("butSave").onclick = function() {
console.log('Dbase length: '+dbase.length);
var data = 'data:text/csv;charset=windows-1251,'+UnicodeToWin1251(dev.cfg.txt.flags.join(';'))+';'+UnicodeToWin1251(dev.cfg.txt.params.join(';'))+ "\n";
dbase.forEach(function(it, idx){data+=it.t.toISOString()+';'+it.tt+';'+it.mode+';'+UnicodeToWin1251(it.flg.join(';'))+';'+UnicodeToWin1251(it.f.join(';'))+'\n';});
var link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download',"data.csv");
console.log('CSVData length: '+data.length);
link.click();
}
При размере сформированных данных CSV менее 2-х мегабайт файл успешно сохраняетcя в Chrome (для Firefox пишут, что ограничение до 1 040 000 байт). Далее кнопка ‘butSave’ на форме ничего не делает
При 5000 пачек замеров console log пишет:
Dbase length: 5000
CSVData length: 3230703
и $("butSave").onclick = function() не сохраняет файл и вообще ничего делает, кроме печати отмеченного в console log