
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.
















