
Size: a a a
FileReader.readAsDataURL
. Лучше применить синхронный URL.createObjectURL
— он моментально создаст для блоба временный URL, который можно использовать как угодно, например, в качестве src
для <img />
. После завершения использования временного URL не забудьте освободить память с помощью вызова URL.revokeObjectURL
.FileReader.readAsDataURL
. Лучше применить синхронный URL.createObjectURL
— он моментально создаст для блоба временный URL, который можно использовать как угодно, например, в качестве src
для <img />
. После завершения использования временного URL не забудьте освободить память с помощью вызова URL.revokeObjectURL
.URL.createObjectURL
лучше FileReader.readAsDataURL
, не заблокирует ли синхронный URL.createObjectURL
поток, если передать ему жирные данные?FileReader.readAsDataURL
: хоть он и работает асинхронно и не блокирует поток, он требует значительных ресурсов для чтения содержимого блоба и его конвертации в data URL.URL.createObjectURL
лучше тем, что он не требует чтения содержимого блоба, а значит расходует гораздо меньше ресурсов; он синхронный, а значит максимально простой в использовании. Генерируемый URL основан на UUID, а не на содержимом блоба, а связываются URL с блобом через специальную специальную хеш-таблицу blob URL store. Пока блоб входит в эту хеш-таблицу, сборщик мусора не может удалить его из памяти, поэтому по завершении использования URL его и нужно отзывать через URL.revokeObjectURL
.