For Web — фронтенд, дизайн, программирование
URL.createObjectURL вместо FileReader.readAsDataURL Если вам нужно отобразить картинку, которая изначально представлена в виде файла или блоба, не используйте для этого асинхронный FileReader.readAsDataURL. Лучше применить синхронный URL.createObjectURL —…
У нескольких человек возник резонный вопрос: чем конкретно
Начнём объяснение с того, чем плох
Подробно вся механика описана в спецификации.
URL.createObjectURL
лучше FileReader.readAsDataURL
, не заблокирует ли синхронный URL.createObjectURL
поток, если передать ему жирные данные?Начнём объяснение с того, чем плох
FileReader.readAsDataURL
: хоть он и работает асинхронно и не блокирует поток, он требует значительных ресурсов для чтения содержимого блоба и его конвертации в data URL.URL.createObjectURL
лучше тем, что он не требует чтения содержимого блоба, а значит расходует гораздо меньше ресурсов; он синхронный, а значит максимально простой в использовании. Генерируемый URL основан на UUID, а не на содержимом блоба, а связываются URL с блобом через специальную специальную хеш-таблицу blob URL store. Пока блоб входит в эту хеш-таблицу, сборщик мусора не может удалить его из памяти, поэтому по завершении использования URL его и нужно отзывать через URL.revokeObjectURL
.Подробно вся механика описана в спецификации.
Google отказывается от монополии на принятие решений в AMP и создаёт для управления проектом комитет, в который войдут эксперты и компании → https://amphtml.wordpress.com/2018/09/18/governance/
agadoo, простая утилита от Рича Харриса для проверки корректной поддержки тришейкинга в разрабатываемых JS-библиотеках → https://github.com/Rich-Harris/agadoo
Вложенные ссылки без вложенных ссылок: Сара Суайдан с обзором техник реализации и способом, который она применила в работе над Smashing Magazine → https://www.sarasoueidan.com/blog/nested-links/
Методологии разработки на примере сборки автомобиля: waterfall, kanban, agile, scrum и lean. Инфографика от Toggl → https://toggl.com/developer-methods-infographic/
Idle Until Urgent
Филип Уолтон с анонсом новой техники оптимизации быстродействия, позволяющей разгрузить основной поток за счёт отложенной инициализации тяжёлых модулей и тем самым повысить отзывчивость при открытии страницы → https://philipwalton.com/articles/idle-until-urgent/
Филип Уолтон с анонсом новой техники оптимизации быстродействия, позволяющей разгрузить основной поток за счёт отложенной инициализации тяжёлых модулей и тем самым повысить отзывчивость при открытии страницы → https://philipwalton.com/articles/idle-until-urgent/
От фич до хайпа: 12 критериев, по которым следует оценивать любую библиотеку. Руководство и практический пример комплексной оценки → https://medium.freecodecamp.org/3908c4ed3f49
This media is not supported in your browser
VIEW IN TELEGRAM
Ленивая подгрузка изображений с помощью IntersectionObserver: опыт инженеров WalmartLabs → https://medium.com/p/8c5bff730920
Sublime Merge, новый кроссплатформенный графический клиент для Git от создателей Sublime Text → https://www.sublimemerge.com/
Возможно, вам не нужен moment.js: список методов, которые можно заменить более легковесной реализацией из date-fns, и ESLint-плагин для их обнаружения → https://github.com/you-dont-need/You-Dont-Need-Momentjs
This media is not supported in your browser
VIEW IN TELEGRAM
taiko, инструмент для автоматизации действий в браузере на JavaScript с собственным REPL → https://github.com/getgauge/taiko/
Максимально простое объяснение того, что такое Babel, зачем он нужен и как устроена его экосистема плагинов и пресетов → https://levelup.gitconnected.com/e5329313a107
Почему дизайнерам стоит изучать программирование: дизайн-директор The Wall Street Journal с двумя примерами того, как ему в работе помогло прототипирование в браузере вместо рисования статичных картинок в Скетче → https://matthewstrom.com/writing/designing-with-code.html
Обзор API консоли Chrome в переводе Сэма Булатова: поиск и инспектирование DOM-элементов, вывод данных в читабельном формате, запуск и остановка профайлера, отслеживание событий и многое другое → https://medium.com/p/d5b87608cbf1
Что хорошо бы знать о Тайпскрипте помимо того, что он добавляет статическую типизацию, обзор Эвана Мартина из Google: интеграция с редакторами, настройка, инкрементальная компиляция, модули, неявный any → https://neugierig.org/software/blog/2016/02/revisiting-typescript.html