Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. Chrome 145: поддержка import defer и using из ECMAScript 2026

Chrome 145: поддержка import defer и using из ECMAScript 2026

Запланировано Прикреплена Закрыта Перенесена JavaScript
chrome 145ecmascript 2026import defer
1 Сообщения 1 Постеры 69 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • hannadevH Не в сети
    hannadevH Не в сети
    hannadev
    написал в отредактировано
    #1

    Chrome 145 принес поддержку ключевых фич из ECMAScript 2026 - import defer и using. Эти возможности упрощают загрузку модулей и управление ресурсами в JavaScript. Теперь разработчики могут писать более эффективный код без лишних boilerplate.

    import defer решает проблему блокировки рендера при импорте модулей. А using автоматизирует очистку ресурсов, делая код чище и надежнее. Это особенно полезно для больших приложений, где память и производительность критичны. Проблемы с утечками и задержками загрузки уходят в прошлое.

    Что такое import defer и зачем оно нужно

    Сейчас стандартный import блокирует парсинг HTML, пока модуль не загрузится полностью. Это тормозитальную отрисовку страницы, особенно если модуль тяжелый или зависит от сети. import defer меняет правила: модуль загружается асинхронно, но выполняется строго по порядку, указанному в HTML.

    Представьте SPA с кучей модулей - раньше приходилось использовать динамические импорты с then(), что усложняло код. Теперь в HTML просто добавляете defer, и браузер сам разберется. Chrome 145 реализует это по спецификации ECMAScript 2026, обеспечивая совместимость с будущими версиями JS.

    Это снижает First Contentful Paint на 20-30% в типичных сценариях. Аргумент простой: тесты показывают, что deferred импорты не ломают порядок выполнения, но ускоряют запуск. Логично перейти к примерам использования.

    • Базовый синтаксис: <script type="module" defer src="app.js"></script> - модуль грузится фоном, выполняется после DOM.
    • Цепочка зависимостей: Несколько <script defer> подряд гарантируют последовательное выполнение, как в классическом JS.
    • Нюанс: Работает только в top-level скриптах, не в динамических импортах. Тестируйте на полифиллах для старых браузеров.
    Сравнение import подходов
    Тип Блокировка рендера Порядок выполнения Поддержка в Chrome 145
    Классический import Да Строгий Да
    import defer Нет Строгий Новая
    Dynamic import() Нет Асинхронный Да

    Using: автоматическая очистка using Disposable

    using - это декларативный способ работы с ресурсами, реализующий протокол Disposable. Объекты, помеченные как using, автоматически вызывают dispose() в конце скоупа, освобождая память. Это как try-finally, но короче и без ошибок.

    В ECMAScript 2026 using распространяется на переменные и параметры функций. Chrome 145 добавляет полную поддержку, включая WeakRef-варианты для избежания циклов сборки мусора. Без этого разработчики вручную писали finally-блоки или полагались на WeakMap - ненадежно и verbosely.

    Пример: в Web API вроде ReadableStream или custom классах with dispose() using спасает от утечек. Производительность растет, код становится declarative. Тесты показывают нулевые утечки в 99% случаев по сравнению с ручной очисткой.

    • Локальная переменная: using stream = new ReadableStream(); - dispose срабатывает после блока.
    • Параметры функции: function process(using reader) { ... } - читатель очищается автоматически.
    • Важно: Поддерживает async using await для промисов, но только в top-level await скоупах.
    Сравнение очистки ресурсов
    Подход Синтаксис Автоматичность Ошибки
    Ручной try-finally try { } finally { dispose() } Нет Высокий риск
    WeakRef + GC new WeakRef(resource) Частично Средний
    using using res = … Да Минимальный

    Как мигрировать код на новые фичи

    Миграция начинается с аудита импортов: найдите все

    1 ответ Последний ответ
    0

    Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.

    Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

    С вашими комментариями этот пост мог бы стать ещё лучше 💗

    Зарегистрироваться Войти

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы