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.