Подтвердить что ты не робот

ArrayBuffer vs Blob и XHR2

различия XHR2

Возможность переноса объектов ArrayBuffer, Blob, File и FormData.

  • В чем разница между ArrayBuffer и Blob?
  • Почему я должен заботиться о том, чтобы отправлять их через XHR2? (Я могу понять значение File и FormData)
4b9b3361

Ответ 1

Это попытка заменить старый метод, который будет принимать "строку" и вырезать его части.

Вы должны использовать ArrayBuffer, когда вам нужен типизированный массив, потому что вы намереваетесь работать с данными и блобом, когда вам просто нужны данные файла.

Blobs (по спецификации вообще) имеют место для MIME и проще вставлять в API файлов HTML5, чем другие форматы (он более роден для него).

ArrayBuffer позволяет нам работать с типизированными массивами, которые намного быстрее, чем манипуляции с строками, для работы с конкретными байтами, и позволяет нам определить, какие типы сегментов массива фактически существуют. Поскольку JavaScript не строго типизирован, трудно взять файл, который может быть разбит на массив из 32-битных ints или, возможно, 64-битных поплавков (только представьте себе 8-битные ints - это будет кошмар с точки зрения производительности с манипуляцией строк и побитовой вычисления, особенно с помощью unicode).

Насколько я могу судить, вы всегда можете перемещать blob в буфер массива или в строковое представление, но это родное для XHR позволяет быстрее запускать скрипты, что является основным преимуществом.

Я бы использовал blob для работы с файловым API, но я бы использовал массив для предварительной обработки данных.