<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[jQuery 4.0: модульная архитектура и оптимизация после 10 лет ожидания]]></title><description><![CDATA[<p dir="auto">jQuery 4.0 наконец вышла после почти десяти лет с релиза версии 3.0. Эта версия фокусируется на <strong>модульной архитектуре</strong> через ES-модули и <strong>оптимизации</strong>, которые уменьшают размер библиотеки и улучшают совместимость с современными инструментами. Мы разберём ключевые изменения, чтобы понять, как они помогут обновить старые проекты без больших переделок.</p>
<p dir="auto">Релиз решает проблемы устаревшего кода и поддержки древних браузеров. Теперь jQuery легче интегрируется в Vite или webpack, а безопасность повышается за счёт Trusted Types. Это timely обновление для проектов, где jQuery всё ещё в ходу на 70% топ-сайтов.</p>
<h2>Модульная архитектура на ES-модулях</h2>
<p dir="auto">Переход на <strong>ECMAScript Modules (ESM)</strong> - главное нововведение в jQuery 4.0. Раньше библиотека использовала AMD-модули, что усложняло работу с современными сборщиками вроде Rollup или Vite. Теперь исходный код полностью на ESM, и jQuery импортируется как обычный модуль без хаков. Это упрощает разработку и делает библиотеку готовой к tree-shaking - автоматическому удалению неиспользуемого кода.</p>
<p dir="auto">Пример: в проекте на Vite раньше приходилось настраивать RequireJS, а теперь достаточно строки <code>import $ from 'jquery';</code>. Размер после сжатия сократился, slim-версия весит всего 19.5 КБ. Но есть нюанс - изменения нарушают обратную совместимость в некоторых случаях, так что тестирование обязательно.</p>
<p dir="auto">Вот что изменилось в модулях:</p>
<ul>
<li><strong>Полный ESM</strong>: код мигрирован с AMD на ES-модули, совместимо с нативными импортами браузера.</li>
<li><strong>Интеграция с bundlers</strong>: webpack, Vite, Rollup теперь работают из коробки без плагинов.</li>
<li><strong>Tree-shaking</strong>: неиспользуемые методы автоматически исключаются при сборке.</li>
<li><strong>Удалены AMD-зависимости</strong>: больше не нужен RequireJS для импорта.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Сравнение модулей</th>
<th>jQuery 3.x</th>
<th>jQuery 4.0</th>
</tr>
</thead>
<tbody>
<tr>
<td>Формат</td>
<td>AMD</td>
<td><strong>ESM</strong></td>
</tr>
<tr>
<td>Bundlers</td>
<td>С плагинами</td>
<td>Нативно</td>
</tr>
<tr>
<td>Размер slim (gz)</td>
<td>~23 КБ</td>
<td><strong>19.5 КБ</strong></td>
</tr>
<tr>
<td>Tree-shaking</td>
<td>Нет</td>
<td><strong>Да</strong></td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Важно</em>: для IE11 используйте полную сборку, так как ESM там не поддерживается нативно.</p>
<h2>Оптимизация размера и производительности</h2>
<p dir="auto">jQuery 4.0 стала легче за счёт удаления устаревших API и полагания на нативные возможности браузеров. Убраны методы вроде <code>jQuery.isArray</code>, <code>jQuery.trim</code>, <code>jQuery.parseJSON</code> - теперь используйте нативные <code>Array.isArray</code>, <code>String.prototype.trim</code>, <code>JSON.parse</code>. Это очищает код и уменьшает бандл на 3 КБ в gzip.</p>
<p dir="auto">Slim-сборка теперь без AJAX, анимаций, Deferreds и Callbacks - вместо них рекомендуют нативные <strong>Promises</strong>. Пример: вместо <code>$.Deferred()</code> пишем <code>new Promise()</code>. Порядок событий фокуса (focus/blur) приведён к W3C-стандарту: blur, focusout, focus, focusin. Раньше jQuery переопределял это для IE, но теперь следует спецификации.</p>
<p dir="auto">Ключевые оптимизации:</p>
<ul>
<li><strong>Удалены deprecated API</strong>: isArray, trim, parseJSON и внутренние методы Array (push, sort, splice).</li>
<li><strong>Slim без Deferreds</strong>: полагайтесь на Promises, размер упал до 19.5 КБ.</li>
<li><strong>Нативный порядок событий</strong>: соответствует W3C, без IE-хаков.</li>
<li><strong>Меньше legacy-кода</strong>: база упрощена для современных браузеров.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>До и после оптимизации</th>
<th>jQuery 3.x</th>
<th>jQuery 4.0</th>
</tr>
</thead>
<tbody>
<tr>
<td>Полная (gz)</td>
<td>30.5 КБ</td>
<td><strong>27.5 КБ</strong></td>
</tr>
<tr>
<td>Slim (gz)</td>
<td>23 КБ</td>
<td><strong>19.5 КБ</strong></td>
</tr>
<tr>
<td>Deprecated API</td>
<td>Много</td>
<td><strong>Удалены</strong></td>
</tr>
<tr>
<td>Promises</td>
<td>Deferreds</td>
<td><strong>Нативные</strong></td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>Производительность выросла</strong> за счёт меньшего размера и отсутствия поллифиллов.</p>
<h2>Поддержка браузеров и безопасность</h2>
<p dir="auto">jQuery 4.0 отказалась от IE10 и старше, старых Edge, устаревших iOS/Firefox. IE11 пока поддерживается, но уйдёт в jQuery 5. Это позволяет убрать тонну legacy-кода, делая библиотеку быстрее и проще. Фокус на Chromium-based браузерах и современных Safari/FF.</p>
<p dir="auto"><strong>Trusted Types</strong> - новинка для защиты от XSS. Теперь в методы вроде <code>.html()</code> можно передавать объекты TrustedHTML, что совместимо с CSP. Пример: <code>$(trustedHTML</code>div&gt;Hi`). Это предотвращает инъекции через innerHTML. Безопасность на уровне современных фреймворков.</p>
<p dir="auto">Изменения в поддержке:</p>
<ul>
<li><strong>Дропнуты</strong>: IE10-, Legacy Edge, старые мобильные.</li>
<li><strong>Остаётся</strong>: IE11 (временно), все современные браузеры.</li>
<li><strong>Trusted Types</strong>: защита от DOM XSS в .html(), .append().</li>
<li><strong>CSP-совместимость</strong>: не нарушает политики безопасности.</li>
</ul>
<h2>Что даёт миграция на 4.0</h2>
<p dir="auto">Большинство кода сработает без изменений, но deprecated-фичи сломаются. Используйте миграционный плагин для проверки. jQuery остаётся актуальной для legacy-проектов, CMS и enterprise - на 70% сайтов она всё ещё в деле.</p>
<p dir="auto">Релиз подводит черту под эпохой поллифиллов. Дальше - фокус на минимализме: ESM, Promises, Trusted Types. Стоит протестировать slim в проектах без AJAX, чтобы сбросить вес.</p>
]]></description><link>https://forum.exlends.ru/topic/1536/jquery-4.0-modulnaya-arhitektura-i-optimizaciya-posle-10-let-ozhidaniya</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 03:09:31 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1536.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Mar 2026 07:39:13 GMT</pubDate><ttl>60</ttl></channel></rss>