22.6.3. Конструирование двоичных объектов
Двоичные объекты часто представляют фрагменты данных из внешних ресурсов, таких как локальные файлы, URL-адреса или базы данных. Но иногда вебприложению требуется создать собственный двоичный объект, чтобы выгрузить его на веб-сервер, сохранить в файле или в базе данных, или передать его фоновому потоку выполнения. Создать объект Blob из имеющихся данных можно с помощью объекта BlobBuilder:
// Создать новый объект BlobBuilder
var bb = new BlobBuilder();
// Добавить в двоичный объект строку и отметить ее конец символом NUL
bb.append("Данный двоичный объект содержит этот текст и 10 ” +
"32-битных целых чисел с прямым порядком следования байтов.");
bb.append(""); // Добавить символ NUL, чтобы отметить конец строки
// Сохранить некоторые данные в объекте ArrayBuffer
var ab = new ArrayBuffer(4*10);
var dv = new DataView(ab);
for(var і = 0: і < 10; i++) dv.setlnt32(i*4,i);
// Добавить ArrayBuffer в двоичный объект
bb.append(ab);
// Теперь извлечь полученный двоичный объект, указав искусственный М1МЕ-тип
var blob = bb.getBlob("x-optional/mime-type-here");
В начале этого раздела мы узнали, что двоичные объекты имеют метод slice(), который разбивает их на фрагменты. Точно так же имеется возможность объединять двоичные объекты, передавая их методу append() объекта BlobBuilder.