Skip to content
This repository has been archived by the owner on May 5, 2020. It is now read-only.

Latest commit

 

History

History

016-blob-urls

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

URL.createObjectURL вместо FileReader.readAsDataURL

Если вам нужно отобразить картинку, которая изначально представлена в виде файла или блоба, не используйте для этого FileReader.readAsDataURL — он требует значительных ресурсов для чтения содержимого блоба и его конвертации в data URL, хоть это и происходит асинхронно и не блокирует основной поток.

Вместо него лучше применить синхронный URL.createObjectURL — он моментально сгенерирует и свяжет с блобом временный URL, который можно использовать как угодно, например, в качестве src для <img />. Генерация URL для блоба не требует чтения его содержимого, поэтому работает быстро и не расходует ресурсы (подробное описание алгоритма в спецификации).

Пока для блоба существуют временные URL, он не может быть удалён из памяти сборщиком мусора, поэтому по завершении использования URL не забудьте отвязать его от блоба с помощью вызова URL.revokeObjectURL.