ArrayBuffer против Blob и XHR2 - PullRequest
       47

ArrayBuffer против Blob и XHR2

17 голосов
/ 15 октября 2011

различия XHR2 состояния

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

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

1 Ответ

15 голосов
/ 15 октября 2011

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

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

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

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

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

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

...