Перейти к содержимому

JavaScript Blob

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

Создание и изменение объектов Blob

Базовое создание Blob

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


Output appears here after Run.

Второй параметр конструктора Blob — это объект опций, который позволяет указать дополнительные метаданные для создаваемого Blob. Этот параметр необязателен и может включать свойства, такие как type. Свойство type — это строка, указывающая MIME-тип данных Blob, что помогает приложениям понять, как с ним работать. Например, установка type в "text/plain" определяет Blob как обычный текст. Существует множество других MIME-типов, например, "image/jpeg" для изображений JPEG, "application/json" для данных JSON или "audio/mpeg" для аудиофайлов MP3. Подробнее см. в статье MIME-Types.

Объединение объектов Blob

Объединение нескольких объектов Blob в один выполняется довольно просто. Поскольку объекты Blob неизменяемы, вам нужно создать новый Blob, объединяющий два предыдущих. Этот метод полезен, когда необходимо агрегировать данные из нескольких источников. Для извлечения конкретных диапазонов байтов можно использовать метод blob.slice():


Output appears here after Run.

Работа с Blob-URL

Генерация Blob-URL

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


Output appears here after Run.

Отозвать Blob-URL

Важно управлять жизненным циклом Blob-URL, отзывая их, когда они больше не нужны, чтобы освободить память:


javascript
const data = new Blob(["Example text"], { type: "text/plain" });
const blobUrl = URL.createObjectURL(data);

// After using the blobUrl 
// ...

URL.revokeObjectURL(blobUrl);  // Cleans up the memory used by the Blob URL

Продвинутые методы работы с Blob

Чтение содержимого Blob

Чтение содержимого из Blob можно выполнить с помощью FileReader или современных методов, таких как blob.text(), blob.arrayBuffer() и blob.stream(). Вот как асинхронно прочитать Blob как текст:


Output appears here after Run.

Преобразование Blob в Base64

Преобразование Blob в строку Base64 необходимо для передачи двоичных данных в средах, поддерживающих только текст:


Output appears here after Run.

Практическое применение объектов Blob

Объекты Blob универсальны и могут использоваться в различных сценариях:

  • Загрузка файлов: Обработка загрузки файлов в приложениях на JavaScript, где Blob может использоваться для представления данных файла.
  • Обработка изображений: Манипуляция изображениями путем создания Blob из данных canvas.
  • Операции с большими данными: Эффективное управление большими объемами двоичных данных без их полной загрузки в память.

Заключение

Объекты Blob — это мощная функция в JavaScript, позволяющая разработчикам эффективно работать с необработанными двоичными данными. Понимая, как создавать, изменять и использовать объекты Blob, вы можете расширить функциональность своих веб-приложений, сделав их более надежными и удобными для пользователей. Благодаря приведенным техникам и примерам вы готовы внедрить объекты Blob в свой следующий проект на JavaScript.

Практика

В чём заключается функциональность объекта Blob в JavaScript?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.