Приветсвую.
Изучите плиз на сколько Клавдия Антроповна говорит по дело.
Я со своей стороны тесты погонял, замеры поделал. Вроде не вреть.
Это и баг т.к. не работает и предложение как решить.
Оно конечно только в связки с ядром сработает.
Надеюсь вы со своей стороны простимулируете команду Карта к фиксу.
Ну а если нет, то предлагаю добавить этот фикс к вам и информацию в справку модуля, как у вас сделано с модулем Мтеатегов например.
Я им тоже написаль.
Тема: прелоад шрифтов промахивается мимо query в CSS — шрифт грузится дважды
fn_ab__p_get_css_timestamp() формирует query для <link rel="preload"> из собственной метки.
Она никогда не совпадает с query того же шрифта внутри скомпилированного файла стилей standalone.*.css, потому что ядро (Tygh\Less::parseUrls) пишет туда компайл-тайм TIME, различный у каждого такого файла. Итог: предзагруженный шрифт браузер скачивает повторно при разборе CSS — прелоад не срабатывает, и вместо ускорения получается лишняя загрузка, то есть противоположное назначению модуля.
Предложение: привязать query прелоада к cache_id:
$cache_id = fn_get_storage_data('cache_id');
if ($cache_id) { return $cache_id; }
return Registry::ifGet('ab__preload.timestamp', 0);
и по возможности эскалировать правку в ядро (см. выше) — тогда query прелоада совпадёт и со скомпилированными файлами стилей, а с критическим CSS (если он на cache_id) совпадает уже сейчас.
Мотивация: сейчас ключевая ценность модуля — предзагрузка ради быстрого первого рендера — для шрифтов не работает вовсе; после правки модуль начинает делать ровно то, что обещает, и снимает у пользователей замечание PageSpeed по шрифтам.
Минусов нет: cache_id стабилен в пределах одной генерации ассетов и бампается при очистке кэша — busting сохраняется, а идентичные шрифты получают единый URL во всех скомпилированных файлах стилей.