- Shipped
- 26 августа 2026 г. в 02:11 UTC
- Author
- kamo
- Commit
- 65eed6d
Этап 4 аудита производительности на стороне клиента и последний из крупных. app/globals.css открывается двумя @imports таблицами стилей ag-grid и макетом root Импорт globals.css — так 187 КБ сетки CSS сидели в <head> всех 143 маршрутов и Заблокированы первые краски на каждом из них, в том числе /validate и /logout. таблицы стилей являются единственным ресурсом в этом приложении, который действительно делает рендер-блок, что делает его Самый большой пункт FCP в аудите и именно то, что сообщает PageSpeed в разделе «Устранить» ресурсов, блокирующих рендеринг". Вход в компоновку CSS падает с 334 КБ до 147 КБ. Импорт перемещается в **************** обертку, которая реэкспортирует AgGridReact не изменился, и все 34 модуля, которые импортировали ag-grid-react, теперь проходят Это. Обертка, а не 34 разбросанных таблицы стилей импорта, потому что 35-я сетка является тот, который будет поставляться без темы — отказ, который выглядит как ошибка CSS в функции, которую никто не использует Тронутый. scripts/check-aggrid-import.mjs поддерживает его и работает в npm-тесте. Каскад — та часть, которая нуждается в доказательстве, а не в утверждении. Globals.css теперь загружается ДО ag-grid, а не после, поэтому каждая равноспецифическая связь между ag-grid и предполетный перелет Tailwind: предполет раньше выигрывал их, теперь это делает ag-grid. Проверено исчерпывающе css-деревом по обоим таблицам стилей, а не глазом: - [скрыто] - (0,2,0) и по-прежнему превосходит все 167 правил "дисплей" аг-сети (0,1,0), Ничто скрытое не становится видимым. Предполетная [роль = «кнопка»] дает им — эти связи не являются операциями. Специализированный Кодеры (ew-размер, захват, перемещение, ячейка) сидят на размере и перетаскивают ручки, которые несут Ни [role="button"], ни :disabled. Все 20 из этих собственных .ag-theme-альпийских надстроек либо полностью !важны, либо (0,3,0) +, поэтому они в любом случае не зависят от порядка. - пять правил голых элементов ag-grid <ag-grid-angular> и друзья, имена элементов Это приложение никогда не отображается, плюс предполетный пользовательский объект не устанавливается. Один подлинный сальто: ag-grid корабли '[класс ^=ag-] {контур: нет }' и предполетные корабли ':-moz-focusring {очертания: auto }', оба (0,1,0), так что пользователи Firefox могли бы потерять Кольцо фокусировки клавиатуры внутри каждой сетки. Globals.css-пины, которые явно находятся на (0,2,0) Таким образом, он бьет как независимо от порядка, так и вычисленное значение является именно тем, чем он был. Также в этой партии: public/ подается с «Cache-Control: public, max-age=0», так что все 24 МБ иконок, Рингтоны, логотипы и pdf были проверены на каждой тяжелой нагрузке. Теперь один час с несвежим сроком давности — намеренно не «неизменяемым» и намеренно не год, потому что ничто под публичным / не является контент-хешированным способом / next /static, поэтому файл Замена на развертывание сохраняет свой URL-адрес, и «неизменный» будет закреплять старые байты без возможности Чтобы разбить его. стартовая площадка. Эти три сайта звонков проходят через следующий / образ, который служит размером WebP. Несколько КБ. Главный файл оставлен в покое: CopilotHero отображает тот же актив на 148 CSS px и нуждается в этом. Проверено: целевой tsc-noEmit чистый поверх обертки, как на сайтах вызовов следующего / изображения, так и образец переписанных модулей сетки с их транзитным импортом; все 9 защитных Сценарии проходят, в том числе и новый, который, как было подтверждено, провалился на заложенном прямом Импорт перед подключением.