Новый конструктор Blob-объектов в Internet Explorer 10

В Internet Explorer 10 в Windows 8 Release Preview добавлена поддержка конструктора Blob-объектов. Мы уже описывали и демонстрировали реализованную в Internet Explorer 10 поддержку разрабатываемого интерфейса BlobBuilder из рабочего черновика File API: Writer W3C Working Draft. Этот интерфейс дает разработчикам возможность работать с файлами на клиентском ПК. Недавно рабочая группа W3C отказалась от интерфейса BlobBuilder в пользу нового конструктора Blob-объектов. В данной статье описываются различия между этими двумя средствами.

Сравнение конструктора Blob-объектов с интерфейсом BlobBuilder

И конструктор Blob-объектов, и интерфейс BlobBuilder позволяют веб-разработчикам создавать файлы на клиентских ПК. Отличие заключается в синтаксисе. Если BlobBuilder требует, чтобы каждый фрагмент большого двоичного объекта добавлялся во время отдельного вызова метода append, конструктор Blob-объектов может принимать массив аргументов. Вот пример того, как можно создать простой текстовый файл с помощью BlobBuilder и конструктора Blob-объектов:

// using the Blob constructor

var textBlob1 = new Blob(["Hello", " world!"], { type: "text/plain", endings: "transparent" });

 

// using the MSBlobBuilder interface

var bb = new MSBlobBuilder();

bb.append("Hello");

bb.append(" world!");

var textBlob2 = bb.getBlob("text/plain");

Конструктор Blob-объектов принимает два аргумента: массив контента для помещения в большой двоичный объект и необязательный объект dictionary, который может содержать два члена — type и endings. Массив контента для большого двоичного объекта может содержать большие двоичные объекты, текстовые строки или буферы массивов.

Новые версии Firefox и Chrome также поддерживают конструктор Blob-объектов. Internet Explorer 10 по-прежнему поддерживает интерфейс MSBlobBuilder с префиксом в дополнение к новому конструктору Blob-объектов. В настоящее время Firefox и Chrome также поддерживают свой интерфейс BlobBuilder (префиксы задаются поставщиком).

Обнаружение компонентов и конструктор Blob-объектов

Как и для всех новых компонентов, мы рекомендуем использовать функцию обнаружения компонентов, чтобы определить, доступен ли конструктор Blob-объектов в браузере, в котором выполняется ваш код. Вы можете использовать код, аналогичный следующему:

if (typeof Blob !== "undefined") {

// use the Blob constructor

} elseif (window.MSBlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder) {

// use the supported vendor-prefixed BlobBuilder

} else {

// neither Blob constructor nor BlobBuilder is supported

}

Если вы запустите тестовую интерактивную демонстрацию BlobBuilder с открытым окном консоли средств разработчика F12, в журнале будет зарегистрировано, как создаются blob-объекты — через конструктор Blob-объектов или через BlobBuilder.

Добавление конструктора Blob-объектов в Internet Explorer 10 позволяет писать совместимый со стандартами код, работающий в разных браузерах.

— Шэрон Ньюмэн (Sharon Newman), руководитель программы, Internet Explorer