Notes
Отложенная загрузка Веб-шрифтов
Очень удобно использовать веб шрифты Google Fonts, однако они оказывают сильное влияние на первую загрузку сайта и им нельзя задать свойство "font-display: swap;". Следующий пример показывает как можно обойти это и добавить очков pagespeed:
const loadFont = (url) => {
// the 'fetch' equivalent has caching issues
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = () => {
if (xhr.readyState == 4 && xhr.status == 200) {
let css = xhr.responseText;
css = css.replace(/}/g, 'font-display: swap; }');
const head = document.getElementsByTagName('head')[0];
const style = document.createElement('style');
style.appendChild(document.createTextNode(css));
head.appendChild(style);
}
};
xhr.send();
}
loadFont('https://fonts.googleapis.com/css?family=Rammetto+One');
from: https://webformyself.com/google-fonts-i-font-display-osobennosti-vzaimodejstviya/
< link href="/fonts/source-serif-pro-400-latin.woff2" rel="preload" as="font" crossorigin="">
Дополнительное преимущество такого подхода заключается в том, что он полностью избавляет меня от проблемы, известной как FOUT — (flash of unstyled text, вспышка обычного шрифта).