Я пытаюсь загрузить файл .obj, который я генерирую на стороне клиента из двоичного массива вершин.Проблема в том, что существует слишком много вершин, чтобы поместиться в память окна браузера
exportOBJ() {
var output = 'o object_export\n';
var i, j, k, l, x, y, z;
var vertices = this._vertices.array;
for (i = 0; i < vertices.length; i += 3) {
x = vertices[i];
y = vertices[i + 1];
z = vertices[i + 2];
output += 'v ' + x + ' ' + y + ' ' + z + '\n';
}
//Other data...
}
// Метод сохранения
function (data) {
var blob = new Blob([data], { type: 'text/obj;charset=utf-8;' });
if (navigator.msSaveBlob) { // IE 10+
navigator.msSaveBlob(blob, filename);
} else {
var link = document.createElement("a");
if (link.download !== undefined) { // feature detection
// Browsers that support HTML5 download attribute
var url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", 'export.obj');
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}
})
Так что это прекрасно работает с небольшими файлами вершин, но когда естьво многих вершинах, например 10M, окно браузера вылетает.Я изучал использование файловых потоков, но это не на стороне клиента, насколько я понимаю.То же самое касается https://github.com/jimmywarting/StreamSaver.js, и мне также требуется возможность загрузки.