Ошибка при загрузке большого файла по ссылке в javascript - PullRequest
4 голосов
/ 03 марта 2020

Моя веб-страница содержит таблицу, содержащую около 10000 строк . Я преобразовал данные таблицы html в объект JSON, используя пакет tableto Json npm. Теперь, чтобы записать этот объект в файл json и загрузить тот же , я делаю следующее.

HTML

<a id="json_gene" href="" download="tgen_json.json">
  <button id="bmss" type="button" class="btn btn-primary exscel">Download Json</button>
</a>

Js

$("body").on("click", "#json_gene", function () {
  var table = $('#data_table').tableToJSON();
  table = {"data": table};
  table = JSON.stringify(table)
  this.href = "data:text/plain;charset=UTF-8,"  + encodeURIComponent(table);
});

Когда таблица содержит строки около 8000 строк, файл json загружается. но когда он превышает 10000 строк, файл j son не загружается из-за большого количества данных, добавляемых в сам URL , так как я думаю, что он также имеет определенный предел c .

Пожалуйста, предложите альтернативу для этой json загрузки.

1 Ответ

7 голосов
/ 03 марта 2020

Вы можете использовать URL.createObjectURL API для создания виртуальных ссылок на файлы.

$("body").on("click", "#json_gene", function() {
  var blobPart = [$('#data_table').tableToJSON()];
  var blob = new Blob(blobPart, {
    type: "application/octet-stream"
  });
  var urlObj = URL.createObjectURL(blob);
  this.href = urlObj;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...