Новый конструктор 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